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 }
SqlHelper 带详细中文注释
时间: 2024-11-01 11:28:57