Code
1using System;
2using System.Data;
3using System.Data.SqlClient;
4namespace DBOperator
5{
6 /**//// <summary>
7 /// Class1 的摘要说明。
8 /// </summary>
9 public class DBOper
10 {
11 private string connstr=System.Configuration.ConfigurationSettings.AppSettings["DSN"];
12 private SqlConnection sqlCon;
13
14 打开数据库连接#region 打开数据库连接
15 /**//// <summary>
16 /// 打开数据库连接.
17 /// </summary>
18 private void Open()
19 {
20 // 打开数据库连接
21 if (sqlCon == null)
22 {
23 sqlCon = new SqlConnection(connstr);
24 }
25 if(sqlCon.State== ConnectionState.Closed)
26 {
27 try
28 {
29 /**////打开数据库连接
30 sqlCon.Open();
31 }
32 catch(Exception ex)
33 {
34 SystemTools.SystemError.SystemLog(ex.Message);
35 }
36
37 }
38 }
39 #endregion
40
41 关闭数据库连接#region 关闭数据库连接
42 /**//// <summary>
43 /// 关闭数据库连接
44 /// </summary>
45 public void Close()
46 {
47 /**////判断连接是否已经创建
48 if(sqlCon != null)
49 {
50 /**////判断连接的状态是否打开
51 if(sqlCon.State ==ConnectionState.Open)
52 {
53 sqlCon.Close();
54 }
55 }
56 }
57 #endregion
58
59 释放资源#region 释放资源
60 /**//// <summary>
61 /// 释放资源
62 /// </summary>
63 public void Dispose()
64 {
65 // 确认连接是否已经关闭
66 if (sqlCon != null)
67 {
68 sqlCon.Dispose();
69 sqlCon = null;
70 }
71 }
72 #endregion
73
74 创建能执行存储过程(带参数的和不带参数的)的Command对象#region 创建能执行存储过程(带参数的和不带参数的)的Command对象
75 /**//// <summary>
76 /// 创建能执行存储过程(带参数的和不带参数的)的Command对象
77 /// </summary>
78 /// <param name="procName"></param>
79 /// <param name="prams"></param>
80 /// <returns></returns>
81 private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
82 {
83 /**////打开数据库连接
84 Open();
85
86 /**////设置Command
87 SqlCommand sqlCom= new SqlCommand(procName, sqlCon);
88 sqlCom.CommandType = CommandType.StoredProcedure;
89
90 /**////添加把存储过程的参数
91 if (prams != null)
92 {
93 foreach (SqlParameter parameter in prams)
94 {
95 sqlCom.Parameters.Add(parameter);
96 }
97 }
98
99 /**////返回创建的SqlCommand对象
100 return sqlCom;
101 }
102 #endregion
103
104 执行无返回值的存储过程(通过参数重载)#region 执行无返回值的存储过程(通过参数重载)
105 public void RunProc(string procName)
106 {
107 SqlCommand sqlCom=CreateCommand(procName, null);
108 try
109 {
110 /**////执行存储过程
111 sqlCom.ExecuteNonQuery();
112 }
113 catch(Exception ex)
114 {
115 /**////记录错误日志
116 SystemTools.SystemError.SystemLog(ex.Message);
117 }
118 finally
119 {
120 /**////关闭数据库的连接
121 Close();
122 }
123
124 }
125
126
127 public void RunProc(string procName, SqlParameter[] prams)
128 {
129 SqlCommand sqlCom= CreateCommand(procName, prams);
130 try
131 {
132 /**////执行存储过程
133 sqlCom.ExecuteNonQuery();
134 }
135 catch(Exception ex)
136 {
137 /**////记录错误日志
138 SystemTools.SystemError.SystemLog(ex.Message);
139 }
140 /**////关闭数据库的连接
141 Close();
142
143 }
144
145
146
147
148 public void RunProc(string procName, out SqlDataReader dataReader)
149 {
150 /**////创建Command
151 SqlCommand sqlCom= CreateCommand(procName, null);
152
153 /**////读取数据
154 dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection);
155
156 }
157
158 public DataSet RunProc_DataSet(string procName)
159 {
160 /**////创建Command
161 SqlCommand sqlCom= CreateCommand(procName, null);
162 SqlDataAdapter sqlDa=new SqlDataAdapter();
163 DataSet ds=new DataSet();
164
165 sqlDa.SelectCommand = sqlCom;
166 sqlDa.Fill(ds);
167 return ds;
168
169 }
170
171 public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
172 {
173 /**////创建Command
174 SqlCommand sqlCom = CreateCommand(procName, prams);
175
176 /**////读取数据
177 dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection);
178
179 }
180
181 #endregion
182
183 执行有返回值的存储过程(返回一个DataSet)#region 执行有返回值的存储过程(返回一个DataSet)
184 public DataSet RunProc_DataSet(string procName, SqlParameter[] prams)
185 {
186 /**////创建Command
187 SqlCommand sqlCom = CreateCommand(procName, prams);
188
189 SqlDataAdapter sqlDa=new SqlDataAdapter();
190 DataSet ds=new DataSet();
191 sqlDa.SelectCommand=sqlCom;
192 sqlDa.Fill(ds);
193 return ds;
194
195 }
196 #endregion
197
198
199 生成存储过程参数#region 生成存储过程参数
200 /**//// <summary>
201 /// 生成存储过程参数
202 /// </summary>
203 /// <param name="ParamName">存储过程名称</param>
204 /// <param name="DbType">参数类型</param>
205 /// <param name="Size">参数大小</param>
206 /// <param name="Direction">参数方向</param>
207 /// <param name="Value">参数值</param>
208 /// <returns>新的 parameter 对象</returns>
209 public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
210 {
211 SqlParameter param;
212
213 /**////当参数大小为0时,不使用该参数大小值
214 if(Size > 0)
215 {
216 param = new SqlParameter(ParamName, DbType, Size);
217 }
218 else
219 {
220 /**////当参数大小为0时,不使用该参数大小值
221 param = new SqlParameter(ParamName, DbType);
222 }
223
224 /**////创建输出类型的参数
225 param.Direction = Direction;
226 if (!(Direction == ParameterDirection.Output && Value == null))
227 {
228 param.Value = Value;
229 }
230
231 /**////返回创建的参数
232 return param;
233 }
234 #endregion
235
236 传入输入参数#region 传入输入参数
237 /**//// <summary>
238 /// 传入输入参数
239 /// </summary>
240 /// <param name="ParamName">存储过程名称</param>
241 /// <param name="DbType">参数类型</param></param>
242 /// <param name="Size">参数大小</param>
243 /// <param name="Value">参数值</param>
244 /// <returns>新的parameter 对象</returns>
245 public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
246 {
247 /**////创建输入类型的参数
248 return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
249 }
250 #endregion
251
252 传入返回值参数#region 传入返回值参数
253 /**//// <summary>
254 /// 传入返回值参数
255 /// </summary>
256 /// <param name="ParamName">存储过程名称</param>
257 /// <param name="DbType">参数类型</param>
258 /// <param name="Size">参数大小</param>
259 /// <returns>新的 parameter 对象</returns>
260 public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size)
261 {
262 /**////创建输出类型的参数
263 return CreateParam(ParamName, DbType, Size, ParameterDirection.Output,null);
264 }
265
266 /**//// <summary>
267 /// 传入返回值参数
268 /// </summary>
269 /// <param name="ParamName">存储过程名称</param>
270 /// <param name="DbType">参数类型</param>
271 /// <param name="Size">参数大小</param>
272 /// <returns>新的 parameter 对象</returns>
273 public SqlParameter CreateReturnParam(string ParamName, SqlDbType DbType, int Size)
274 {
275 /**////创建返回类型的参数
276 return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
277 }
278 #endregion
279
280 public void ExcuteSQL(string sql)
281 {
282 SqlCommand sqlCom=new SqlCommand(sql,sqlCon);
283 Open();
284 sqlCom.ExecuteNonQuery();
285 }
286 public int ExcuteScalar(string sql)
287 {
288 Open();
289 SqlCommand sqlCom=new SqlCommand(sql,sqlCon);
290 return Convert.ToInt32(sqlCom.ExecuteScalar());
291 }
292
293 public DataSet ExcuteQuery(string sql)
294 {
295 DataSet ds=new DataSet();
296 SqlDataAdapter sqlDa=new SqlDataAdapter(sql,sqlCon);
297 sqlDa.SelectCommand.Connection.Open();
298 sqlDa.Fill(ds);
299 return(ds);
300 }
301 }
302}
303
1using System;
2using System.Data;
3using System.Data.SqlClient;
4namespace DBOperator
5{
6 /**//// <summary>
7 /// Class1 的摘要说明。
8 /// </summary>
9 public class DBOper
10 {
11 private string connstr=System.Configuration.ConfigurationSettings.AppSettings["DSN"];
12 private SqlConnection sqlCon;
13
14 打开数据库连接#region 打开数据库连接
15 /**//// <summary>
16 /// 打开数据库连接.
17 /// </summary>
18 private void Open()
19 {
20 // 打开数据库连接
21 if (sqlCon == null)
22 {
23 sqlCon = new SqlConnection(connstr);
24 }
25 if(sqlCon.State== ConnectionState.Closed)
26 {
27 try
28 {
29 /**////打开数据库连接
30 sqlCon.Open();
31 }
32 catch(Exception ex)
33 {
34 SystemTools.SystemError.SystemLog(ex.Message);
35 }
36
37 }
38 }
39 #endregion
40
41 关闭数据库连接#region 关闭数据库连接
42 /**//// <summary>
43 /// 关闭数据库连接
44 /// </summary>
45 public void Close()
46 {
47 /**////判断连接是否已经创建
48 if(sqlCon != null)
49 {
50 /**////判断连接的状态是否打开
51 if(sqlCon.State ==ConnectionState.Open)
52 {
53 sqlCon.Close();
54 }
55 }
56 }
57 #endregion
58
59 释放资源#region 释放资源
60 /**//// <summary>
61 /// 释放资源
62 /// </summary>
63 public void Dispose()
64 {
65 // 确认连接是否已经关闭
66 if (sqlCon != null)
67 {
68 sqlCon.Dispose();
69 sqlCon = null;
70 }
71 }
72 #endregion
73
74 创建能执行存储过程(带参数的和不带参数的)的Command对象#region 创建能执行存储过程(带参数的和不带参数的)的Command对象
75 /**//// <summary>
76 /// 创建能执行存储过程(带参数的和不带参数的)的Command对象
77 /// </summary>
78 /// <param name="procName"></param>
79 /// <param name="prams"></param>
80 /// <returns></returns>
81 private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
82 {
83 /**////打开数据库连接
84 Open();
85
86 /**////设置Command
87 SqlCommand sqlCom= new SqlCommand(procName, sqlCon);
88 sqlCom.CommandType = CommandType.StoredProcedure;
89
90 /**////添加把存储过程的参数
91 if (prams != null)
92 {
93 foreach (SqlParameter parameter in prams)
94 {
95 sqlCom.Parameters.Add(parameter);
96 }
97 }
98
99 /**////返回创建的SqlCommand对象
100 return sqlCom;
101 }
102 #endregion
103
104 执行无返回值的存储过程(通过参数重载)#region 执行无返回值的存储过程(通过参数重载)
105 public void RunProc(string procName)
106 {
107 SqlCommand sqlCom=CreateCommand(procName, null);
108 try
109 {
110 /**////执行存储过程
111 sqlCom.ExecuteNonQuery();
112 }
113 catch(Exception ex)
114 {
115 /**////记录错误日志
116 SystemTools.SystemError.SystemLog(ex.Message);
117 }
118 finally
119 {
120 /**////关闭数据库的连接
121 Close();
122 }
123
124 }
125
126
127 public void RunProc(string procName, SqlParameter[] prams)
128 {
129 SqlCommand sqlCom= CreateCommand(procName, prams);
130 try
131 {
132 /**////执行存储过程
133 sqlCom.ExecuteNonQuery();
134 }
135 catch(Exception ex)
136 {
137 /**////记录错误日志
138 SystemTools.SystemError.SystemLog(ex.Message);
139 }
140 /**////关闭数据库的连接
141 Close();
142
143 }
144
145
146
147
148 public void RunProc(string procName, out SqlDataReader dataReader)
149 {
150 /**////创建Command
151 SqlCommand sqlCom= CreateCommand(procName, null);
152
153 /**////读取数据
154 dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection);
155
156 }
157
158 public DataSet RunProc_DataSet(string procName)
159 {
160 /**////创建Command
161 SqlCommand sqlCom= CreateCommand(procName, null);
162 SqlDataAdapter sqlDa=new SqlDataAdapter();
163 DataSet ds=new DataSet();
164
165 sqlDa.SelectCommand = sqlCom;
166 sqlDa.Fill(ds);
167 return ds;
168
169 }
170
171 public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
172 {
173 /**////创建Command
174 SqlCommand sqlCom = CreateCommand(procName, prams);
175
176 /**////读取数据
177 dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection);
178
179 }
180
181 #endregion
182
183 执行有返回值的存储过程(返回一个DataSet)#region 执行有返回值的存储过程(返回一个DataSet)
184 public DataSet RunProc_DataSet(string procName, SqlParameter[] prams)
185 {
186 /**////创建Command
187 SqlCommand sqlCom = CreateCommand(procName, prams);
188
189 SqlDataAdapter sqlDa=new SqlDataAdapter();
190 DataSet ds=new DataSet();
191 sqlDa.SelectCommand=sqlCom;
192 sqlDa.Fill(ds);
193 return ds;
194
195 }
196 #endregion
197
198
199 生成存储过程参数#region 生成存储过程参数
200 /**//// <summary>
201 /// 生成存储过程参数
202 /// </summary>
203 /// <param name="ParamName">存储过程名称</param>
204 /// <param name="DbType">参数类型</param>
205 /// <param name="Size">参数大小</param>
206 /// <param name="Direction">参数方向</param>
207 /// <param name="Value">参数值</param>
208 /// <returns>新的 parameter 对象</returns>
209 public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
210 {
211 SqlParameter param;
212
213 /**////当参数大小为0时,不使用该参数大小值
214 if(Size > 0)
215 {
216 param = new SqlParameter(ParamName, DbType, Size);
217 }
218 else
219 {
220 /**////当参数大小为0时,不使用该参数大小值
221 param = new SqlParameter(ParamName, DbType);
222 }
223
224 /**////创建输出类型的参数
225 param.Direction = Direction;
226 if (!(Direction == ParameterDirection.Output && Value == null))
227 {
228 param.Value = Value;
229 }
230
231 /**////返回创建的参数
232 return param;
233 }
234 #endregion
235
236 传入输入参数#region 传入输入参数
237 /**//// <summary>
238 /// 传入输入参数
239 /// </summary>
240 /// <param name="ParamName">存储过程名称</param>
241 /// <param name="DbType">参数类型</param></param>
242 /// <param name="Size">参数大小</param>
243 /// <param name="Value">参数值</param>
244 /// <returns>新的parameter 对象</returns>
245 public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
246 {
247 /**////创建输入类型的参数
248 return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
249 }
250 #endregion
251
252 传入返回值参数#region 传入返回值参数
253 /**//// <summary>
254 /// 传入返回值参数
255 /// </summary>
256 /// <param name="ParamName">存储过程名称</param>
257 /// <param name="DbType">参数类型</param>
258 /// <param name="Size">参数大小</param>
259 /// <returns>新的 parameter 对象</returns>
260 public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size)
261 {
262 /**////创建输出类型的参数
263 return CreateParam(ParamName, DbType, Size, ParameterDirection.Output,null);
264 }
265
266 /**//// <summary>
267 /// 传入返回值参数
268 /// </summary>
269 /// <param name="ParamName">存储过程名称</param>
270 /// <param name="DbType">参数类型</param>
271 /// <param name="Size">参数大小</param>
272 /// <returns>新的 parameter 对象</returns>
273 public SqlParameter CreateReturnParam(string ParamName, SqlDbType DbType, int Size)
274 {
275 /**////创建返回类型的参数
276 return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
277 }
278 #endregion
279
280 public void ExcuteSQL(string sql)
281 {
282 SqlCommand sqlCom=new SqlCommand(sql,sqlCon);
283 Open();
284 sqlCom.ExecuteNonQuery();
285 }
286 public int ExcuteScalar(string sql)
287 {
288 Open();
289 SqlCommand sqlCom=new SqlCommand(sql,sqlCon);
290 return Convert.ToInt32(sqlCom.ExecuteScalar());
291 }
292
293 public DataSet ExcuteQuery(string sql)
294 {
295 DataSet ds=new DataSet();
296 SqlDataAdapter sqlDa=new SqlDataAdapter(sql,sqlCon);
297 sqlDa.SelectCommand.Connection.Open();
298 sqlDa.Fill(ds);
299 return(ds);
300 }
301 }
302}
303