发布个人版的C#数据库操作类源码
一直以来,我都是习惯用Vb.net来开发网站。但最近与俺相处了3年的同事调走了,部分的项目由我来接管,他较擅长C#,因此近段时间恶补C#的东西。以前我写过几个Vb.net版的数据库访问类——其实我觉得叫模块更为合适,前天试着把它转为C#版。不妥之处望大家能提出改进意见,具体原码如下:
1/// <summary>
2 /// SqlDbAccessVCsharp 的摘要说明。
3 /// </summary>
4 public class SqlDbAccessVCsharp
5 {
6
7 /// <summary>
8 /// _ConectionString 局部变量:连接字符串。
9 /// </summary>
10 private string _ConectionString;
11 /// <summary>
12 /// _QuryValue 局部变量:查询结果,数据类型32位整型数。
13 /// </summary>
14 private Int32 _IntQuryValue;
15 /// <summary>
16 /// SqlConnection局部变量:查询结果,数据类型字符串。
17 /// </summary>
18 private String _StrQuryValue;
19 /// <summary>
20 /// SqlConnection 局部变量:数据库连接。
21 /// </summary>
22 private SqlConnection CurrentConnection=new SqlConnection();
23 /// <summary>
24 /// SqlCmd 局部变量:SqlCommand。
25 /// </summary>
26 private SqlCommand SqlCmd ;
27 /// <summary>
28 /// MyDataSet 局部变量:DataSet。
29 /// </summary>
30 private DataSet MyDataSet=new DataSet();
31 /// <summary>
32 /// MySqlDataReader 局部变量:SqlDataReader。
33 /// </summary>
34 private SqlDataReader MySqlDataReader;
35 /// <summary>
36 /// MySqlDataAdapter 局部变量:SqlDataAdapter。
37 /// </summary>
38 private SqlDataAdapter MySqlDataAdapter;
39 /// <summary>
40 /// _CurrentPageCode 局部变量:String。
41 /// </summary>
42 private int _CurrentPageCode;
43 /// <summary>
44 /// ConectionString 属性:连接字符串。
45 /// </summary>
46 public string ConectionString
47 {
48 get{
49 return _ConectionString;
50 }
51 set{
52 _ConectionString=value;
53 }
54 }
55 /// <summary>
56 /// IntQuryValue 属性:整型查询结果。
57 /// </summary>
58 public Int32 IntQuryValue
59 {
60 get
61 {
62 return _IntQuryValue;
63 }
64 set
65 {
66 _IntQuryValue=value;
67 }
68 }
69 /// <summary>
70 /// StrQuryValue 属性:字符串查询结果。
71 /// </summary>
72 public string StrQuryValue
73 {
74 get
75 {
76 return _StrQuryValue;
77 }
78 set
79 {
80 _StrQuryValue=value;
81 }
82 }
83 /// <summary>
84 /// CurrentPageCode 属性:当前页。
85 /// </summary>
86 public int CurrentPageCode
87 {
88 get
89 {
90 return _CurrentPageCode;
91 }
92 set
93 {
94 _CurrentPageCode=value;
95 }
96 }
97 /// <summary>
98 /// ConnectToDb 打开数据库连接。
99 /// </summary>
100 /// <paramref name="Errmsg">
101 /// 返回值:错误信息。
102 /// </paramref>
103 public bool ConnectToDb(ref string ErrMsg)
104 {
105 try
106
107 {
108
109 if ( ( CurrentConnection.State== ConnectionState.Broken)||( CurrentConnection.State== ConnectionState.Closed))
110 {
111 CurrentConnection.ConnectionString =ConectionString;
112 CurrentConnection.Open();
113 }
114 return true;
115 }
116 catch (SqlException e)
117 {
118 ErrMsg = e.ToString();
119 ErrMsg = ErrMsg.Replace("\r", "");
120 ErrMsg = ErrMsg.Replace("\n", "");
121 return false;
122 }
123 }
124 /// <summary>
125 /// CloseDb 关闭数据库连接。
126 /// </summary>
127 /// <paramref name="Errmsg">
128 /// 返回值:错误信息。
129 /// </paramref>
130 public bool CloseDb(ref string ErrMsg)
131 {
132 try
133
134 {
135 if ( ( CurrentConnection.State!= ConnectionState.Broken) &&( CurrentConnection.State!= ConnectionState.Closed))
136 {
137 CurrentConnection.Close();
138 CurrentConnection.Dispose();
139 }
140 return true;
141 }
142 catch (SqlException e)
143 {
144 ErrMsg = e.ToString();
145 ErrMsg = ErrMsg.Replace("\r", "");
146 ErrMsg = ErrMsg.Replace("\n", "");
147 return false;
148 }
149 }
150 /// <summary>
151 /// ExecuteSql 执行Sql命令。
152 /// </summary>
153 /// <param name="SqlStr">
154 /// 传入参数:Sql语句
155 /// </param>
156 /// <paramref name="Errmg">
157 /// 引用参数:错误信息
158 /// </paramref>
159 public bool ExecuteSql(string SqlStr,ref string ErrMsg)
160 {
161
162
163 try
164 {
165 if (ConnectToDb(ref ErrMsg) == true)
166 {
167 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
168 SqlCmd.ExecuteNonQuery();
169 SqlCmd.Dispose();
170 CloseDb(ref ErrMsg);
171 return true;
172 }
173 else
174 return false;
175 }
176 catch (SqlException e)
177 {
178 ErrMsg = e.ToString();
179 ErrMsg = ErrMsg.Replace("\r", "");
180 ErrMsg = ErrMsg.Replace("\n", "");
181 return false;
182 }
183
184
185 }
186 /// <summary>
187 /// QuerySingleIntValue 查询出一个单值。
188 /// </summary>
189 /// <param name="SqlStr">
190 /// 传入参数:Sql语句。
191 /// </param>
192 /// <paramref name="Errmg">
193 /// 引用参数:错误信息。
194 /// </paramref>
195 public bool QuerySingleIntValue(string SqlStr,ref string ErrMsg)
196 {
197
198 try
199 {
200 if (ConnectToDb(ref ErrMsg) == true)
201 {
202 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
203 MySqlDataReader=SqlCmd.ExecuteReader();
204 while(MySqlDataReader.Read())
205 {
206 IntQuryValue =Convert.ToInt32(MySqlDataReader[0]);
207 }
208 MySqlDataReader.Close();
209 SqlCmd.Dispose();
210 CloseDb(ref ErrMsg);
211 return true;
212 }
213 return false;
214 }
215 catch (SqlException e)
216 {
217 ErrMsg = e.ToString();
218 ErrMsg = ErrMsg.Replace("\r", "");
219 ErrMsg = ErrMsg.Replace("\n", "");
220 return false;
221 }
222
223 }
224 /// <summary>
225 /// QuerySingleStrValue 查询出一个单值。
226 /// </summary>
227 /// <param name="SqlStr">
228 /// 传入参数:Sql语句。
229 /// </param>
230 /// <paramref name="Errmg">
231 /// 引用参数:错误信息。
232 /// </paramref>
233 public bool QuerySingleStrValue(string SqlStr,ref string ErrMsg)
234 {
235
236 try
237 {
238 if (ConnectToDb(ref ErrMsg) == true)
239 {
240 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
241 MySqlDataReader=SqlCmd.ExecuteReader();
242 while(MySqlDataReader.Read())
243 {
244 StrQuryValue = Convert.ToString(MySqlDataReader[0]);
245 }
246 MySqlDataReader.Close();
247 SqlCmd.Dispose();
248 CloseDb(ref ErrMsg);
249 return true;
250 }
251 return false;
252 }
253 catch (SqlException e)
254 {
255 ErrMsg = e.ToString();
256 ErrMsg = ErrMsg.Replace("\r", "");
257 ErrMsg = ErrMsg.Replace("\n", "");
258 return false;
259 }
260
261 }
262 /// <summary>
263 /// MoreValueQuery 查询出多值。
264 /// </summary>
265 /// <param name="SqlStr">
266 /// 查询语句
267 /// </param>
268 /// <param name="FieldCount">
269 /// 读取字段数
270 /// </param>
271 ///<paramref name="ValueArrlist">
272 ///引用参数:查询结果,保存在动态数组当中。
273 ///</paramref>
274 ///<paramref name="ErrMsg">
275 ///引用参数:错误信息。
276 ///</paramref>
277 public bool MoreValueQuery(string SqlStr,int FieldCount,ref ArrayList ValueArrlist,string ErrMsg)
278 {
279
280 try
281 {
282 if (ConnectToDb(ref ErrMsg) == true)
283 {
284
285 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
286 MySqlDataReader=SqlCmd.ExecuteReader();
287 while(MySqlDataReader.Read())
288 {
289 for (int i = 0; i <= FieldCount-1; i++)
290
291 {
292 if (!MySqlDataReader.IsDBNull(i))
293 {
294 ValueArrlist.Add("无");
295 }
296 else
297 {
298 ValueArrlist.Add(MySqlDataReader.GetString(i));
299 }
300 }
301
302 }
303 MySqlDataReader.Close();
304 SqlCmd.Dispose();
305 CloseDb(ref ErrMsg);
306 return true;
307 }
308 return false;
309 }
310 catch (SqlException e)
311 {
312 ErrMsg = e.ToString();
313 ErrMsg = ErrMsg.Replace("\r", "");
314 ErrMsg = ErrMsg.Replace("\n", "");
315 return false;
316 }
317 }
318 public DataView GetTableData(int PageShow,string SqlStr,string TableName,ref string ErrMsg)
319 {
320 try
321 {
322 if (ConnectToDb(ref ErrMsg) == true)
323 {
324 int StartIndex=0;
325 MySqlDataAdapter=new SqlDataAdapter(SqlStr,CurrentConnection);
326 if (PageShow==0)
327 {
328 MySqlDataAdapter.Fill(MyDataSet,TableName);
329 }
330 else
331 {
332 StartIndex = CurrentPageCode * PageShow;
333 MySqlDataAdapter.Fill(MyDataSet,StartIndex,PageShow,TableName);
334 }
335 DataView MyDataView;//=new DataView();
336 MyDataView = MyDataSet.Tables[TableName].DefaultView;
337
338 SqlCmd.Dispose();
339 CloseDb(ref ErrMsg);
340 return MyDataView;
341 }
342 else
343 return null;
344 }
345 catch (SqlException e)
346 {
347 ErrMsg = e.ToString();
348 ErrMsg = ErrMsg.Replace("\r", "");
349 ErrMsg = ErrMsg.Replace("\n", "");
350 return null;
351 }
352
353 }
354
355 }
2 /// SqlDbAccessVCsharp 的摘要说明。
3 /// </summary>
4 public class SqlDbAccessVCsharp
5 {
6
7 /// <summary>
8 /// _ConectionString 局部变量:连接字符串。
9 /// </summary>
10 private string _ConectionString;
11 /// <summary>
12 /// _QuryValue 局部变量:查询结果,数据类型32位整型数。
13 /// </summary>
14 private Int32 _IntQuryValue;
15 /// <summary>
16 /// SqlConnection局部变量:查询结果,数据类型字符串。
17 /// </summary>
18 private String _StrQuryValue;
19 /// <summary>
20 /// SqlConnection 局部变量:数据库连接。
21 /// </summary>
22 private SqlConnection CurrentConnection=new SqlConnection();
23 /// <summary>
24 /// SqlCmd 局部变量:SqlCommand。
25 /// </summary>
26 private SqlCommand SqlCmd ;
27 /// <summary>
28 /// MyDataSet 局部变量:DataSet。
29 /// </summary>
30 private DataSet MyDataSet=new DataSet();
31 /// <summary>
32 /// MySqlDataReader 局部变量:SqlDataReader。
33 /// </summary>
34 private SqlDataReader MySqlDataReader;
35 /// <summary>
36 /// MySqlDataAdapter 局部变量:SqlDataAdapter。
37 /// </summary>
38 private SqlDataAdapter MySqlDataAdapter;
39 /// <summary>
40 /// _CurrentPageCode 局部变量:String。
41 /// </summary>
42 private int _CurrentPageCode;
43 /// <summary>
44 /// ConectionString 属性:连接字符串。
45 /// </summary>
46 public string ConectionString
47 {
48 get{
49 return _ConectionString;
50 }
51 set{
52 _ConectionString=value;
53 }
54 }
55 /// <summary>
56 /// IntQuryValue 属性:整型查询结果。
57 /// </summary>
58 public Int32 IntQuryValue
59 {
60 get
61 {
62 return _IntQuryValue;
63 }
64 set
65 {
66 _IntQuryValue=value;
67 }
68 }
69 /// <summary>
70 /// StrQuryValue 属性:字符串查询结果。
71 /// </summary>
72 public string StrQuryValue
73 {
74 get
75 {
76 return _StrQuryValue;
77 }
78 set
79 {
80 _StrQuryValue=value;
81 }
82 }
83 /// <summary>
84 /// CurrentPageCode 属性:当前页。
85 /// </summary>
86 public int CurrentPageCode
87 {
88 get
89 {
90 return _CurrentPageCode;
91 }
92 set
93 {
94 _CurrentPageCode=value;
95 }
96 }
97 /// <summary>
98 /// ConnectToDb 打开数据库连接。
99 /// </summary>
100 /// <paramref name="Errmsg">
101 /// 返回值:错误信息。
102 /// </paramref>
103 public bool ConnectToDb(ref string ErrMsg)
104 {
105 try
106
107 {
108
109 if ( ( CurrentConnection.State== ConnectionState.Broken)||( CurrentConnection.State== ConnectionState.Closed))
110 {
111 CurrentConnection.ConnectionString =ConectionString;
112 CurrentConnection.Open();
113 }
114 return true;
115 }
116 catch (SqlException e)
117 {
118 ErrMsg = e.ToString();
119 ErrMsg = ErrMsg.Replace("\r", "");
120 ErrMsg = ErrMsg.Replace("\n", "");
121 return false;
122 }
123 }
124 /// <summary>
125 /// CloseDb 关闭数据库连接。
126 /// </summary>
127 /// <paramref name="Errmsg">
128 /// 返回值:错误信息。
129 /// </paramref>
130 public bool CloseDb(ref string ErrMsg)
131 {
132 try
133
134 {
135 if ( ( CurrentConnection.State!= ConnectionState.Broken) &&( CurrentConnection.State!= ConnectionState.Closed))
136 {
137 CurrentConnection.Close();
138 CurrentConnection.Dispose();
139 }
140 return true;
141 }
142 catch (SqlException e)
143 {
144 ErrMsg = e.ToString();
145 ErrMsg = ErrMsg.Replace("\r", "");
146 ErrMsg = ErrMsg.Replace("\n", "");
147 return false;
148 }
149 }
150 /// <summary>
151 /// ExecuteSql 执行Sql命令。
152 /// </summary>
153 /// <param name="SqlStr">
154 /// 传入参数:Sql语句
155 /// </param>
156 /// <paramref name="Errmg">
157 /// 引用参数:错误信息
158 /// </paramref>
159 public bool ExecuteSql(string SqlStr,ref string ErrMsg)
160 {
161
162
163 try
164 {
165 if (ConnectToDb(ref ErrMsg) == true)
166 {
167 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
168 SqlCmd.ExecuteNonQuery();
169 SqlCmd.Dispose();
170 CloseDb(ref ErrMsg);
171 return true;
172 }
173 else
174 return false;
175 }
176 catch (SqlException e)
177 {
178 ErrMsg = e.ToString();
179 ErrMsg = ErrMsg.Replace("\r", "");
180 ErrMsg = ErrMsg.Replace("\n", "");
181 return false;
182 }
183
184
185 }
186 /// <summary>
187 /// QuerySingleIntValue 查询出一个单值。
188 /// </summary>
189 /// <param name="SqlStr">
190 /// 传入参数:Sql语句。
191 /// </param>
192 /// <paramref name="Errmg">
193 /// 引用参数:错误信息。
194 /// </paramref>
195 public bool QuerySingleIntValue(string SqlStr,ref string ErrMsg)
196 {
197
198 try
199 {
200 if (ConnectToDb(ref ErrMsg) == true)
201 {
202 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
203 MySqlDataReader=SqlCmd.ExecuteReader();
204 while(MySqlDataReader.Read())
205 {
206 IntQuryValue =Convert.ToInt32(MySqlDataReader[0]);
207 }
208 MySqlDataReader.Close();
209 SqlCmd.Dispose();
210 CloseDb(ref ErrMsg);
211 return true;
212 }
213 return false;
214 }
215 catch (SqlException e)
216 {
217 ErrMsg = e.ToString();
218 ErrMsg = ErrMsg.Replace("\r", "");
219 ErrMsg = ErrMsg.Replace("\n", "");
220 return false;
221 }
222
223 }
224 /// <summary>
225 /// QuerySingleStrValue 查询出一个单值。
226 /// </summary>
227 /// <param name="SqlStr">
228 /// 传入参数:Sql语句。
229 /// </param>
230 /// <paramref name="Errmg">
231 /// 引用参数:错误信息。
232 /// </paramref>
233 public bool QuerySingleStrValue(string SqlStr,ref string ErrMsg)
234 {
235
236 try
237 {
238 if (ConnectToDb(ref ErrMsg) == true)
239 {
240 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
241 MySqlDataReader=SqlCmd.ExecuteReader();
242 while(MySqlDataReader.Read())
243 {
244 StrQuryValue = Convert.ToString(MySqlDataReader[0]);
245 }
246 MySqlDataReader.Close();
247 SqlCmd.Dispose();
248 CloseDb(ref ErrMsg);
249 return true;
250 }
251 return false;
252 }
253 catch (SqlException e)
254 {
255 ErrMsg = e.ToString();
256 ErrMsg = ErrMsg.Replace("\r", "");
257 ErrMsg = ErrMsg.Replace("\n", "");
258 return false;
259 }
260
261 }
262 /// <summary>
263 /// MoreValueQuery 查询出多值。
264 /// </summary>
265 /// <param name="SqlStr">
266 /// 查询语句
267 /// </param>
268 /// <param name="FieldCount">
269 /// 读取字段数
270 /// </param>
271 ///<paramref name="ValueArrlist">
272 ///引用参数:查询结果,保存在动态数组当中。
273 ///</paramref>
274 ///<paramref name="ErrMsg">
275 ///引用参数:错误信息。
276 ///</paramref>
277 public bool MoreValueQuery(string SqlStr,int FieldCount,ref ArrayList ValueArrlist,string ErrMsg)
278 {
279
280 try
281 {
282 if (ConnectToDb(ref ErrMsg) == true)
283 {
284
285 SqlCmd=new SqlCommand(SqlStr,CurrentConnection);
286 MySqlDataReader=SqlCmd.ExecuteReader();
287 while(MySqlDataReader.Read())
288 {
289 for (int i = 0; i <= FieldCount-1; i++)
290
291 {
292 if (!MySqlDataReader.IsDBNull(i))
293 {
294 ValueArrlist.Add("无");
295 }
296 else
297 {
298 ValueArrlist.Add(MySqlDataReader.GetString(i));
299 }
300 }
301
302 }
303 MySqlDataReader.Close();
304 SqlCmd.Dispose();
305 CloseDb(ref ErrMsg);
306 return true;
307 }
308 return false;
309 }
310 catch (SqlException e)
311 {
312 ErrMsg = e.ToString();
313 ErrMsg = ErrMsg.Replace("\r", "");
314 ErrMsg = ErrMsg.Replace("\n", "");
315 return false;
316 }
317 }
318 public DataView GetTableData(int PageShow,string SqlStr,string TableName,ref string ErrMsg)
319 {
320 try
321 {
322 if (ConnectToDb(ref ErrMsg) == true)
323 {
324 int StartIndex=0;
325 MySqlDataAdapter=new SqlDataAdapter(SqlStr,CurrentConnection);
326 if (PageShow==0)
327 {
328 MySqlDataAdapter.Fill(MyDataSet,TableName);
329 }
330 else
331 {
332 StartIndex = CurrentPageCode * PageShow;
333 MySqlDataAdapter.Fill(MyDataSet,StartIndex,PageShow,TableName);
334 }
335 DataView MyDataView;//=new DataView();
336 MyDataView = MyDataSet.Tables[TableName].DefaultView;
337
338 SqlCmd.Dispose();
339 CloseDb(ref ErrMsg);
340 return MyDataView;
341 }
342 else
343 return null;
344 }
345 catch (SqlException e)
346 {
347 ErrMsg = e.ToString();
348 ErrMsg = ErrMsg.Replace("\r", "");
349 ErrMsg = ErrMsg.Replace("\n", "");
350 return null;
351 }
352
353 }
354
355 }