zoukankan      html  css  js  c++  java
  • 简单的DBHelper类

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Linq;
      4 using System.Text;
      5 using System.Configuration;
      6 using System.Data.SqlClient;
      7 using System.Data;//using: 引入命名空间
      8 
      9 namespace DBHelper
     10 {
     11     public static class DBHelper
     12     {
     13         //Web.config 配置
     14         // <?xml version="1.0"?>
     15         //
     16         //    <configuration>
     17         //
     18         //        <!--指定配置节和命名空间声明。clear:移除对继承的节和节组的所有引用,只允许由当前 section 和 sectionGroup 元素添加的节和节组。remove:移除对继承的节和节组的引用。section:定义配置节处理程序与配置元素之间的关联。sectionGroup:定义配置节处理程序与配置节之间的关联。-->
     19         //      <configSections>
     20         //        ............
     21         //      </configSections>
     22         //
     23         //      <!--appSettings是应用程序设置,可以定义应用程序的全局常量设置等信息-->
     24         //      <appSettings>
     25         //            ..............
     26         //     </appSettings>
     27         //
     28         //     <!--连接字符串设置-->
     29         //      <connectionStrings>
     30         //        <add name="strCon" connectionString="Data Source=CUSTDB;user=HISSG_AG;password=HISSG_AG;"/>
     31         //      </connectionStrings>
     32         //
     33         //      <system.web>
     34               
     35         //      </system.web>
     36         //      .................
     37         //      .................
     38         //    </configuration>
     39 
     40 
     41         //要引入using System.Configuration命名空间
     42         private static readonly string connectionString = ConfigurationManager.ConnectionStrings["strCon"].ConnectionString;
     43 
     44         /// <summary>
     45         ///  执行SQL语句,返回受影响的行数(用于insert,delete,update等)
     46         /// </summary>
     47         /// <param name="strSQL">SQL语句</param>
     48         /// <returns>受影响的行数</returns>
     49         public static int ExecuteSql(string strSQL)
     50         {
     51             //using: 释放资源
     52             //SqlConnection: 连接数据源
     53             //connectionString:用于连接数据源的字符串
     54             using (SqlConnection conn = new SqlConnection(connectionString))
     55             {
     56                 //SqlCommand对数据源执行SQl命令
     57                 //SqlCommand(CommandText, CommandString):strSQL需执行的SQL命令字符串,conn指定执行SQL命令需连接的数据源
     58                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
     59                 {
     60                     try
     61                     {
     62                         conn.Open();//打开数据源连接
     63                         int rows = cmd.ExecuteNonQuery();//执行SQL语句,返回受影响的行数。如rows>0,说明执行成功
     64                         return rows;
     65                     }
     66                     catch (System.Data.SqlClient.SqlException e)
     67                     {
     68                         conn.Close();//出异常,关闭数据源连接
     69                         throw e;
     70                     }
     71                 }
     72             }
     73         }
     74 
     75         /// <summary>
     76         /// 执行带参数的非查询SQL
     77         /// </summary>
     78         /// <param name="strSQL">SQL语句</param>
     79         /// <param name="values">参数</param>
     80         /// <returns>受影响行数</returns>
     81         public static int ExecuteCommand(string strSQL, params SqlParameter[] values)
     82         {
     83             using (SqlConnection conn = new SqlConnection(connectionString))
     84             {
     85                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
     86                 {
     87                     try
     88                     {
     89                         conn.Open();//打开数据源连接
     90                         cmd.Parameters.AddRange(values);
     91                         int rows = cmd.ExecuteNonQuery();//执行SQL语句,返回受影响的行数。如rows>0,说明执行成功
     92                         return rows;
     93                     }
     94                     catch (System.Data.SqlClient.SqlException ex)
     95                     {
     96                         conn.Close();//出异常,关闭数据源连接
     97                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
     98                     }
     99                 }
    100             }
    101         }
    102 
    103         /// <summary>
    104         ///  执行查询SQL语句,返回SqlDataReader(只进记录集) ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
    105         /// </summary>
    106         /// <param name="strSQL">查询语句</param>
    107         /// <returns>SqlDataReader</returns>
    108         public static SqlDataReader ExecuteReader(string strSQL)
    109         {
    110             using (SqlConnection conn = new SqlConnection(connectionString))
    111             {
    112                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    113                 {
    114                     try
    115                     {
    116                         conn.Open();//打开数据源连接
    117                         //CommandBehavior.CloseConnection 能够保证当SqlDataReader对象被关闭时,其依赖的连接也会被自动关闭。
    118                         SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    119                         return myReader;
    120                     }
    121                     catch (System.Data.SqlClient.SqlException ex)
    122                     {
    123                         conn.Close();//出异常,关闭数据源连接
    124                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    125                     }
    126                 }
    127             }
    128         }
    129 
    130         /// <summary>
    131         ///  执行带参数的查询SQL语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
    132         /// </summary>
    133         /// <param name="strSQL">查询语句</param>
    134         /// <param name="values">参数</param>
    135         /// <returns>SqlDataReader</returns>
    136         public static SqlDataReader ExecuteReader(string strSQL, params SqlParameter[] values)
    137         {
    138             using (SqlConnection conn = new SqlConnection(connectionString))
    139             {
    140                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    141                 {
    142                     try
    143                     {
    144                         conn.Open();//打开数据源连接
    145                         //CommandBehavior.CloseConnection 能够保证当SqlDataReader对象被关闭时,其依赖的连接也会被自动关闭。
    146                         cmd.Parameters.AddRange(values);
    147                         SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    148                         return myReader;
    149                     }
    150                     catch (System.Data.SqlClient.SqlException ex)
    151                     {
    152                         conn.Close();//出异常,关闭数据源连接
    153                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    154                     }
    155                 }
    156             }
    157         }
    158 
    159 
    160         ///////DataReader和DataSet的区别
    161         ///////1.获取数据的方式:
    162         ///////    DataReader(在线-一直占用SqlConnection连接,其它操作就可以不可使用,占用内存较小)
    163         ///////    DataSet(离线-将数据一次性读入内存,然后断开连接,其它操作就可以使用,比较消耗资源)
    164         ///////2.获取数据的机制
    165         ///////    DataReader是通过IDbCommand.ExecuteReader来读取数据。
    166         ///////    DataSet则是通过DbDataAdapter.Fill来填充数据
    167         ///////3.其它区别
    168         ///////    DataReader读取速度快于DataSet。
    169         ///////    DataReader是数据提供者类,DataSet是一般性类,借助于DbDataAdapter来填充数据。
    170         ///////...............................等
    171 
    172 
    173         /// <summary>
    174         ///  执行查询SQL语句,返回离线记录集
    175         /// </summary>
    176         /// <param name="strSQL">SQL语句</param>
    177         /// <returns>离线记录DataSet</returns>
    178         public DataSet getDataTablebySQL(string strSQL)
    179         {
    180             using (SqlConnection conn = new SqlConnection(connectionString))
    181             {
    182                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    183                 {
    184                     try
    185                     {
    186                         conn.Open();//打开数据源连接
    187                         DataSet ds = new DataSet();
    188                         SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
    189                         myAdapter.Fill(ds);
    190                         return ds;
    191                     }
    192                     catch (System.Data.SqlClient.SqlException ex)
    193                     {
    194                         conn.Close();//出异常,关闭数据源连接
    195                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    196                     }
    197                 }
    198             }
    199         }
    200 
    201         /// <summary>
    202         ///  执行带参数的查询SQL,返回离线记录集
    203         /// </summary>
    204         /// <param name="strSQL"></param>
    205         /// <returns></returns>
    206         public DataSet getDataTablebySQL(string strSQL, params SqlParameter[] values)
    207         {
    208             using (SqlConnection conn = new SqlConnection(connectionString))
    209             {
    210                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    211                 {
    212                     try
    213                     {
    214                         conn.Open();//打开数据源连接
    215                         DataSet ds = new DataSet();
    216                         cmd.Parameters.AddRange(values);
    217                         SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
    218                         myAdapter.Fill(ds);
    219                         return ds;
    220                     }
    221                     catch (System.Data.SqlClient.SqlException ex)
    222                     {
    223                         conn.Close();//出异常,关闭数据源连接
    224                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    225                     }
    226                 }
    227             }
    228         }
    229 
    230         /// <summary>
    231         ///  执行查询SQL语句,返回离线记录集
    232         /// </summary>
    233         /// <param name="strSQL">SQL语句</param>
    234         /// <returns>离线记录DataSet</returns>
    235         public DataTable getDataTablebySQL(string strSQL)
    236         {
    237             using (SqlConnection conn = new SqlConnection(connectionString))
    238             {
    239                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    240                 {
    241                     try
    242                     {
    243                         conn.Open();//打开数据源连接
    244                         DataSet ds = new DataSet();
    245                         SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
    246                         myAdapter.Fill(ds);
    247                         return ds.Tables[0];
    248                     }
    249                     catch (System.Data.SqlClient.SqlException ex)
    250                     {
    251                         conn.Close();//出异常,关闭数据源连接
    252                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    253                     }
    254                 }
    255             }
    256         }
    257 
    258         /// <summary>
    259         ///  执行带参数的查询SQL,返回离线记录集
    260         /// </summary>
    261         /// <param name="strSQL"></param>
    262         /// <returns></returns>
    263         public DataTable getDataTablebySQL(string strSQL,params SqlParameter[] values)
    264         {
    265             using (SqlConnection conn = new SqlConnection(connectionString))
    266             {
    267                 using (SqlCommand cmd = new SqlCommand(strSQL, conn))
    268                 {
    269                     try
    270                     {
    271                         conn.Open();//打开数据源连接
    272                         DataSet ds = new DataSet();
    273                         cmd.Parameters.AddRange(values);
    274                         SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
    275                         myAdapter.Fill(ds);
    276                         return ds.Tables[0];
    277                     }
    278                     catch (System.Data.SqlClient.SqlException ex)
    279                     {
    280                         conn.Close();//出异常,关闭数据源连接
    281                         throw new Exception(string.Format("执行{0}失败:{1}", strSQL, ex.Message));
    282                     }
    283                 }
    284             }
    285         }
    286     }
    287 }
  • 相关阅读:
    maven常用仓库
    AD域安装及必要设置
    oracle创建表空间
    javascript弹出模态窗体
    win8.1 AMD 屏幕亮度无法调整
    tomcat优化
    CentOS 6.2 中文
    tomcat之JNDI数据源配置
    eclipse中tomcat配置(待完善)
    Ant打jar包指定MainClass
  • 原文地址:https://www.cnblogs.com/qzyStar/p/4552104.html
Copyright © 2011-2022 走看看