首页 > 代码库 > SqlHelper 带详细中文注释

SqlHelper 带详细中文注释

  1 using System;  
  2 using System.Collections.Generic;  
  3 using System.Linq;  
  4 using System.Text;  
  5 //对数据库进行操作引入命名空间  
  6 using System.Data;  
  7 using System.Data.SqlClient;  
  8 using System.Configuration;  
  9   
 10   
 11 namespace DAL  
 12 {  
 13     public class SQLhelper  
 14     {  
 15   
 16   
 17         /// 变量定义<summary>  
 18         /// </summary>  
 19         private SqlConnection conn = null;  
 20         private SqlCommand cmd = null;      
 21         private SqlDataReader sdr = null;   
 22   
 23         /// SQLhelper connStr 字符串的连接<summary>  
 24         /// </summary>  
 25          04  011  
 26         public SQLhelper()  
 27         {  
 28             string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;  //连接SQL数据表
 29             conn = new SqlConnection(connStr);   //连接通道
 30   
 31         }  
 32   
 33   
 34   
 35         /// 获取conn<summary>  
 36         /// </summary>  
 37         /// <returns>为什么要这样写有什么意义呢?</returns>  
 38         private SqlConnection GetConn()  
 39         {  
 40             if (conn.State == ConnectionState.Closed)  //-判断当前连接的状态  如果当前的连接是关闭状态的话  结果为True 
 41             {  
 42                 conn.Open();   //-打开数据库
 43             }  
 44   
 45             return conn;    //返回结果
 46         }  
 47   
 48   
 49   
 50   
 51         /// 该方法传入一个增删改SQL语句或是存储过程<summary>  
 52         /// </summary>  
 53         /// <param name="sql">要执行的增删改SQL语句或是存储过程</param>  
 54         /// <returns>返回更新的记录数</returns>  
 55         public int ExecuteNonQuery(string cmdText,CommandType ct)  
 56         {  
 57             //-执行非查询 比如说 insert  Updata  Delect 
 58             //不定义的时候返回的初值是零  
 59             int res;  
 60             try  
 61             {  
 62                 //-1、将预见可能引发异常的代码包含在try语句块中。  
 63                 //-2、如果发生了异常,则转入catch的执行。
 64                 cmd = new SqlCommand(cmdText, GetConn());  
 65 
 66                 cmd.CommandType = ct;  
 67                 res = cmd.ExecuteNonQuery();  
 68             }  
 69             catch (Exception ex)  
 70             {  
 71                   //-这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。
 72                 throw ex;  
 73             }  
 74             finally  
 75             {  
 76                 //-不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally 
 77                 //-清理工作。如关闭数据库连接。
 78                 if (conn.State == ConnectionState.Open)  
 79                 {  
 80                     conn.Close();  
 81                 }  
 82   
 83             }  
 84             return res;    //-返回给调用者
 85         }  
 86   
 87  
 88         /// 执行带参数的增删改语句或是存储过程<summary>  
 89         /// 执行带参数的增删改语句或是存储过程  
 90         /// </summary>  
 91         /// <param name="sql">带参数的SQL语句或是存储过程</param>  
 92         /// <param name="paras">参数集合</param>  
 93         /// <returns></returns>  
 94   
 95         public int ExecuteNonQuery(string cmdText, SqlParameter[] paras,CommandType ct)  
 96         {  
 97             int res;  
 98             using (cmd = new SqlCommand(cmdText, GetConn()))  
 99             {  
100                 cmd.CommandType = ct;  
101                 cmd.Parameters.AddRange(paras);   //将每个查询出的数 添加到数组
102 
103                 res = cmd.ExecuteNonQuery();  
104             }  
105 
106             return res;  
107   
108         }  
109   
110   
111         /// 该方法传入一个查询SQL语句或是存储过程<summary>  
112         /// 该方法传入一个查询SQL语句或是存储过程  
113         /// </summary>  
114         /// <param name="cmtText">SQL查询语句或存储过程</param>  
115         /// <returns></returns>  
116         public DataTable ExecuteQuery(string cmtText,CommandType ct)  
117         {  
118             DataTable dt = new DataTable();  
119             cmd = new SqlCommand(cmtText, GetConn());  
120             cmd.CommandType = ct;  
121             //关系sdr的同是将会关闭conn  
122             using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
123             {  
124                 dt.Load(sdr);  
125             }  
126             return dt;  
127         }  
128   
129   
130         /// 执行带参数的SQL语句或是存储过程<summary>  
131         /// 执行带参数的SQL语句或是存储过程  
132         /// </summary>  
133         /// <param name="cmdText">SQL语句或是存储过程</param>  
134         /// <param name="paras"></param>  
135         /// <returns></returns>  
136         public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras,CommandType ct)  
137         {  
138             DataTable dt = new DataTable();  
139 
140             cmd = new SqlCommand(cmdText, GetConn());  
141             cmd.CommandType = ct;  
142             cmd.Parameters.AddRange(paras);  
143             //关系sdr的同是将会关闭conn  
144             using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))  
145             {  
146                 dt.Load(sdr);  
147             }  
148             return dt;  
149         }  
150 
151     }  
152 
153 }