zoukankan      html  css  js  c++  java
  • .net 连接sqlserver类库

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Web;
      5 using System.Data.SqlClient;
      6 using System.Data;
      7 using System.Configuration;
      8 
      9 public class SqlHelper
     10 {
     11     public static readonly string conString = ConfigurationManager.ConnectionStrings["sqlCon"].ConnectionString;
     12     //增删改
     13     public static bool ExeNonQuery(string sql, CommandType type, params SqlParameter[] lists)
     14     {
     15         bool bFlag = false;
     16         using (SqlConnection con = new SqlConnection(conString))
     17         {
     18             SqlCommand cmd = new SqlCommand();
     19             cmd.Connection = con;
     20             cmd.CommandText = sql;
     21             cmd.CommandType = type;
     22             if (lists != null)
     23             {
     24                 foreach (SqlParameter p in lists)
     25                 {
     26                     cmd.Parameters.Add(p);
     27                 }
     28             }
     29             try
     30             {
     31                 if (con.State == ConnectionState.Closed)
     32                 {
     33                     con.Open();
     34                 }
     35                 int result = cmd.ExecuteNonQuery();
     36                 if (result > 0)
     37                 {
     38                     bFlag = true;
     39                 }
     40 
     41             }
     42             catch { ;}
     43         }
     44         return bFlag;
     45     }
     46 
     47     //查.读
     48     public static SqlDataReader ExeDataReader(string sql, CommandType type, params SqlParameter[] lists)
     49     {
     50         SqlConnection con = new SqlConnection(conString);
     51         SqlCommand cmd = new SqlCommand();
     52         cmd.Connection = con;
     53         cmd.CommandText = sql;
     54         cmd.CommandType = type;
     55 
     56         if (con.State == ConnectionState.Closed)
     57         {
     58             con.Open();
     59         }
     60 
     61         if (lists != null)
     62         {
     63             foreach (SqlParameter p in lists)
     64             {
     65                 cmd.Parameters.Add(p);
     66             }
     67         }
     68 
     69         SqlDataReader reader = cmd.ExecuteReader();
     70 
     71         return reader;
     72     }
     73 
     74     //返回单个值
     75     public static object GetScalar(string sql, CommandType type, params SqlParameter[] lists)
     76     {
     77         object returnValue = null;
     78         using (SqlConnection con = new SqlConnection(conString))
     79         {
     80             SqlCommand cmd = new SqlCommand();
     81             cmd.Connection = con;
     82             cmd.CommandText = sql;
     83             cmd.CommandType = type;
     84             if (lists != null)
     85             {
     86                 foreach (SqlParameter p in lists)
     87                 {
     88                     cmd.Parameters.Add(p);
     89                 }
     90             }
     91             try
     92             {
     93                 if (con.State == ConnectionState.Closed)
     94                 {
     95                     con.Open();
     96                 }
     97                 returnValue = cmd.ExecuteScalar();
     98 
     99             }
    100             catch { ; }
    101         }
    102         return returnValue;
    103     }
    104 
    105     //事务
    106     public static bool ExeNonQueryTran(List<SqlCommand> list)
    107     {
    108         bool flag = true;
    109         SqlTransaction tran = null;
    110         using (SqlConnection con = new SqlConnection(conString))
    111         {
    112             try
    113             {
    114                 if (con.State == ConnectionState.Closed)
    115                 {
    116                     con.Open();
    117                     tran = con.BeginTransaction();
    118                     foreach (SqlCommand com in list)
    119                     {
    120                         com.Connection = con;
    121                         com.Transaction = tran;
    122                         com.ExecuteNonQuery();
    123                     }
    124                     tran.Commit();
    125                 }
    126             }
    127             catch (Exception ex)
    128             {
    129                 Console.Write(ex.Message);
    130                 tran.Rollback();
    131                 flag = false;
    132             }
    133         }
    134         return flag;
    135     }
    136     //返回DataTable
    137     public static DataTable GetTable(string sql)
    138     {
    139         SqlConnection conn = new SqlConnection(conString);
    140         SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    141         DataTable table = new DataTable();
    142         da.Fill(table);
    143         return table;
    144     }
    145     /// <summary>
    146     /// 调用带参数的存储过程,返回dataTable
    147     /// </summary>
    148     /// <param name="proc">存储过程的名称</param>
    149     /// <param name="rows">一页几行</param>
    150     /// <param name="page">当前页</param>
    151     /// <param name="tabName">表名</param>
    152     /// <returns>dataTable</returns>
    153     public static DataTable Proc_Table(string proc, int rows, int page, string tabName)
    154     {
    155         SqlConnection conn = new SqlConnection(conString);
    156         SqlCommand cmd = new SqlCommand(proc, conn);
    157         //指定调用存储过程
    158         cmd.CommandType = CommandType.StoredProcedure;
    159         cmd.Parameters.Add("@rows", rows);
    160         cmd.Parameters.Add("@page", page);
    161         cmd.Parameters.Add("@tabName", tabName);
    162         SqlDataAdapter apt = new SqlDataAdapter(cmd);
    163         DataTable dt = new DataTable();
    164         apt.Fill(dt);
    165         return dt;
    166     }
    167 
    168    //调用带参数的存储过程返回datatable
    169     public static DataTable GetTablebyproc(string proc, int pageRow, int pagSize, string tabName)
    170     {
    171         SqlConnection conn = new SqlConnection(conString);
    172         SqlCommand cmd = new SqlCommand(proc,conn);
    173         cmd.CommandType = CommandType.StoredProcedure;
    174         cmd.Parameters.Add("@rows", pageRow);
    175         cmd.Parameters.Add("@pagesize", pagSize);
    176         cmd.Parameters.Add("@tablename", tabName);
    177         SqlDataAdapter apt = new SqlDataAdapter(cmd);
    178         DataTable table = new DataTable();
    179         apt.Fill(table);
    180         return table;
    181 
    182     }
    183     public static DataTable GetDataByPager(string tbname, string fieldkey, int pagecurrent, int pagesize, string fieldshow, string fieldorder, string wherestring, ref int pagecount)
    184     {
    185         SqlParameter[] parameters = {
    186                 new SqlParameter("@tbname",   SqlDbType.VarChar, 100),
    187                 new SqlParameter("@FieldKey", SqlDbType.VarChar, 100),
    188                 new SqlParameter("@PageCurrent", SqlDbType.Int),
    189                 new SqlParameter("@PageSize", SqlDbType.Int),
    190                 new SqlParameter("@FieldShow", SqlDbType.VarChar, 200),
    191                 new SqlParameter("@FieldOrder", SqlDbType.VarChar, 200),
    192                 new SqlParameter("@WhereString", SqlDbType.VarChar, 500),
    193                 new SqlParameter("@RecordCount", SqlDbType.Int),
    194             };
    195         parameters[0].Value = tbname;
    196         parameters[1].Value = fieldkey;
    197         parameters[2].Value = pagecurrent;
    198         parameters[3].Value = pagesize;
    199         parameters[4].Value = fieldshow;
    200         parameters[5].Value = fieldorder;
    201         parameters[6].Value = wherestring;
    202         parameters[7].Direction = ParameterDirection.Output;
    203         DataTable dt = ExecuteQuery("sp_get_data", parameters).Tables[0];
    204         pagecount = Convert.ToInt32(parameters[7].Value);
    205         return dt;
    206     }
    207     /// <summary>
    208     /// 执行有参数的查询类存储过程
    209     /// </summary>
    210     /// <param name="pstrStoreProcedure">存储过程名</param>
    211     /// <param name="pParms">存储过程的参数数组</param>
    212     /// <returns>查询得到的结果集</returns>
    213     public static DataSet ExecuteQuery(string pstrStoreProcedure, SqlParameter[] pParms)
    214     {
    215 
    216 
    217         DataSet dsResult = new DataSet();
    218         SqlDataAdapter sda = new SqlDataAdapter();
    219         SqlConnection con = new SqlConnection(conString);
    220         SqlCommand cmd;
    221         int intCounter;
    222         try
    223         {
    224             if (con.State != ConnectionState.Open)
    225                 con.Open();
    226             cmd = new SqlCommand();
    227             cmd.Connection = con;
    228             cmd.CommandType = CommandType.StoredProcedure;
    229             cmd.CommandText = pstrStoreProcedure;
    230             if (pParms != null)
    231             {
    232                 for (intCounter = 0; intCounter < pParms.GetLength(0); intCounter++)
    233                 {
    234                     cmd.Parameters.Add(pParms[intCounter]);
    235                 }
    236             }
    237             sda.SelectCommand = cmd;
    238             sda.Fill(dsResult);
    239 
    240 
    241         }
    242         catch (SqlException ex)
    243         {
    244             throw new Exception(ex.Message);
    245         }
    246         finally
    247         {
    248             //清空关闭操作
    249             sda.Dispose();
    250             con.Close();
    251             con.Dispose();
    252 
    253         }
    254         return dsResult;
    255     }
    256     /// <summary>
    257     /// 此分页存储过程直没修改 大家可以用自己的
    258     /// </summary>
    259     /// <param name="tableName">表名</param>
    260     /// <param name="getFields">需要返回的列</param>
    261     /// <param name="orderName">排序的字段名</param>
    262     /// <param name="pageSize">页尺寸</param>
    263     /// <param name="pageIndex">页码</param>
    264     /// <param name="isGetCount">返回记录总数,非 0 值则返回</param>
    265     /// <param name="orderType">设置排序类型,0表示升序非0降序</param>
    266     /// <param name="strWhere"></param>
    267     /// <returns></returns>
    268     //public static DataSet GetList(string tableName, string getFields, string orderName, int pageSize, int pageIndex, bool isGetCount, bool orderType, string strWhere)
    269     //{
    270     //    SqlParameter[] parameters = {
    271     //            new SqlParameter("@tblName", SqlDbType.VarChar, 255),
    272     //            new SqlParameter("@strGetFields", SqlDbType.VarChar, 1000),
    273     //            new SqlParameter("@fldName", SqlDbType.VarChar, 255),
    274     //          new SqlParameter("@PageSize", SqlDbType.Int),
    275     //       new SqlParameter("@PageIndex", SqlDbType.Int),
    276     //        new SqlParameter("@doCount", SqlDbType.Bit),
    277     //            new SqlParameter("@OrderType", SqlDbType.Bit),
    278     //            new SqlParameter("@strWhere", SqlDbType.VarChar, 1500)            
    279     //                             };
    280     //    parameters[0].Value = tableName;
    281     //    parameters[1].Value = getFields;
    282     //    parameters[2].Value = orderName;
    283     //    parameters[3].Value = pageSize;
    284     //    parameters[4].Value = pageIndex;
    285     //    parameters[5].Value = isGetCount ? 1 : 0;
    286     //    parameters[6].Value = orderType ? 1 : 0;
    287     //    parameters[7].Value = strWhere;
    288     //    return SqlHelper.RunProcedure("pro_pageList", parameters, "ds");
    289     //}
    290     //public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
    291     //{
    292     //    using (SqlConnection connection = new SqlConnection(conString))
    293     //    {
    294     //        DataSet dataSet = new DataSet();
    295     //        connection.Open();
    296     //        new SqlDataAdapter { SelectCommand = BuildQueryCommand(connection, storedProcName, parameters) }.Fill(dataSet, tableName);
    297     //        connection.Close();
    298     //        return dataSet;
    299     //    }
    300     //}
    301     /// <summary>
    302     /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值)
    303     /// </summary>
    304     /// <param name="connection">数据库连接</param>
    305     /// <param name="storedProcName">存储过程名</param>
    306     /// <param name="parameters">存储过程参数</param>
    307     /// <returns>SqlCommand</returns>
    308     private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
    309     {
    310         SqlCommand command = new SqlCommand(storedProcName, connection)
    311         {
    312             CommandType = CommandType.StoredProcedure
    313         };
    314         foreach (SqlParameter parameter in parameters)
    315         {
    316             if (parameter != null)
    317             {
    318                 if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null))
    319                 {
    320                     parameter.Value = DBNull.Value;
    321                 }
    322                 command.Parameters.Add(parameter);
    323             }
    324         }
    325         return command;
    326     }
    327     //根据表名和主键id来进行删除
    328     public static int DelData(string tabName, string ID)
    329     {
    330         if (ID != string.Empty && ID != "0")
    331         {
    332             string sql = string.Format("delete from {0}  WHERE (ID IN ({1}))", tabName, ID);
    333             int delNum = ExecuteSql(sql);
    334             return delNum;
    335         }
    336         return 0;
    337     }
    338     //增删改返回执行条数
    339     public static int ExecuteSql(string SQLString)
    340     {
    341         int num2;
    342         using (SqlConnection connection = new SqlConnection(conString))
    343         {
    344             SqlCommand command = new SqlCommand(SQLString, connection);
    345             try
    346             {
    347                 connection.Open();
    348                 num2 = command.ExecuteNonQuery();
    349             }
    350             catch (SqlException exception)
    351             {
    352                 connection.Close();
    353                 throw exception;
    354             }
    355             finally
    356             {
    357                 if (command != null)
    358                 {
    359                     command.Dispose();
    360                 }
    361             }
    362         }
    363         return num2;
    364     }
    365 }
  • 相关阅读:
    RESTful API 架构解读
    在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)
    在阿里云 ECS 搭建 nginx https nodejs 环境(二、https)
    linux 常见操作指令
    前端数据存储方案集合(cookie localStorage等)以及详解 (二)
    无法从其“Checked”属性的字符串表示形式“checked”创建“System.Boolean”类型
    VS2012使用验证控件出现[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。的解决办法。
    使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档
    常用正则表达式总结
    sql 中有关时间的语句
  • 原文地址:https://www.cnblogs.com/hyyweb/p/5133210.html
Copyright © 2011-2022 走看看