1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Data;
5
using System.Data.SqlClient;
6
using System.Data.OleDb;
7
8
namespace IDataAccessLib
9

{
10
类型选择#region 类型选择
11
public enum DBAccessType
12
{
13
SQL, OLEDB
14
}
15
#endregion
16
17
工厂类#region 工厂类
18
public class Factory
19
{
20
SQL工厂#region SQL工厂
21
public static IDataAccess GetSqlAccess(DBAccessType Type)
22
{
23
IDataAccess DBAccess = null;
24
switch (Type)
25
{
26
case DBAccessType.SQL:
27
{
28
DBAccess = new SqlAccess();
29
}
30
break;
31
}
32
33
return DBAccess;
34
}
35
36
public static IDataAccess GetSqlAccess(DBAccessType Type, string ConnectionString)
37
{
38
IDataAccess DBAccess = null;
39
switch (Type)
40
{
41
case DBAccessType.SQL:
42
{
43
DBAccess = new SqlAccess(ConnectionString);
44
}
45
break;
46
}
47
48
return DBAccess;
49
}
50
#endregion
51
52
OLEDB工厂#region OLEDB工厂
53
public static IDataAccess GetOledbAccess(DBAccessType Type)
54
{
55
IDataAccess DBAccess = null;
56
switch (Type)
57
{
58
case DBAccessType.OLEDB:
59
{
60
DBAccess = new OledbAccess();
61
}
62
break;
63
}
64
return DBAccess;
65
}
66
67
public static IDataAccess GetOledbAccess(DBAccessType Type, string ConnectionString)
68
{
69
IDataAccess DBAccess = null;
70
switch (Type)
71
{
72
case DBAccessType.OLEDB:
73
{
74
DBAccess = new OledbAccess(ConnectionString);
75
}
76
break;
77
}
78
return DBAccess;
79
}
80
#endregion
81
}
82
#endregion
83
84
接口#region 接口
85
public interface IDataAccess
86
{
87
string ConnectionString
88
{
89
get;
90
set;
91
}
92
93
void Open();
94
void Close();
95
void ExcuteCommand(string CommandString, IDataParameter[] Paras);
96
DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras);
97
void ExecuteProc(string ProcName, IDataParameter[] Paras);
98
DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras);
99
object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras);
100
object ExecuteProcScalar(string ProcName, IDataParameter[] Paras);
101
IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras);
102
IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras);
103
}
104
#endregion
105
106
SQL类#region SQL类
107
public class SqlAccess : IDataAccess
108
{
109
IDataAccess 成员#region IDataAccess 成员
110
111
private string strConn;
112
private SqlConnection conn;
113
114
无参数构造#region 无参数构造
115
public SqlAccess()
116
{
117
strConn = "";
118
conn = new SqlConnection();
119
}
120
#endregion
121
122
有参数构造#region 有参数构造
123
public SqlAccess(string ConnectionString)
124
{
125
strConn = ConnectionString;
126
conn = new SqlConnection(strConn);
127
}
128
#endregion
129
130
返回第一行第一列方法#region 返回第一行第一列方法
131
public object GetScalar(SqlCommand cmd)
132
{
133
object obj = null;
134
try
135
{
136
Open();
137
obj = cmd.ExecuteScalar();
138
}
139
catch (Exception exp)
140
{
141
throw (new Exception("获取第一行第一列数据错误:" + exp.Message));
142
}
143
finally
144
{
145
Close();
146
}
147
return obj;
148
}
149
#endregion
150
151
数据库连接字符串属性器#region 数据库连接字符串属性器
152
public string ConnectionString
153
{
154
get
155
{
156
return strConn;
157
}
158
set
159
{
160
strConn = value;
161
conn.ConnectionString = strConn;
162
}
163
}
164
#endregion
165
166
打开数据库#region 打开数据库
167
public void Open()
168
{
169
try
170
{
171
if (conn.State != ConnectionState.Open) // 判断数据库连接状态是否打开
172
{
173
conn.Open(); // 打开数据库连接
174
}
175
}
176
catch (Exception exp)
177
{
178
throw (new Exception("打开数据库连接错误:" + exp.Message));
179
}
180
}
181
#endregion
182
183
关闭数据库#region 关闭数据库
184
public void Close()
185
{
186
try
187
{
188
if (conn.State != ConnectionState.Closed) // 判断数据库连接是否关闭
189
{
190
conn.Close(); // 关闭数据库连接
191
}
192
}
193
catch (Exception exp)
194
{
195
throw (new Exception("关闭数据库连接错误:" + exp.Message));
196
}
197
}
198
#endregion
199
200
执行命令#region 执行命令
201
public void ExcuteCommand(string CommandString, IDataParameter[] Paras)
202
{
203
try
204
{
205
SqlCommand cmd = new SqlCommand(CommandString, conn);
206
if (Paras != null)
207
{
208
foreach (IDataParameter Para in Paras)
209
{
210
cmd.Parameters.Add(Para);
211
}
212
}
213
Open();
214
cmd.ExecuteNonQuery();
215
}
216
catch (System.Exception exp)
217
{
218
throw (new System.Exception("执行命令错误:" + exp.Message));
219
}
220
finally
221
{
222
Close();
223
}
224
}
225
#endregion
226
227
执行命令返回DataSet#region 执行命令返回DataSet
228
public DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras)
229
{
230
try
231
{
232
SqlCommand cmd = new SqlCommand(CommandString, conn);
233
if (Paras != null)
234
{
235
foreach (IDataParameter Para in Paras)
236
{
237
cmd.Parameters.Add(Para);
238
}
239
}
240
241
SqlDataAdapter da = new SqlDataAdapter(cmd);
242
DataSet ds = new DataSet();
243
da.Fill(ds, TableName);
244
return ds;
245
}
246
catch (System.Exception exp)
247
{
248
throw (new System.Exception("执行命令返回DataSet:" + exp.Message));
249
}
250
}
251
#endregion
252
253
执行存储过程#region 执行存储过程
254
public void ExecuteProc(string ProcName, IDataParameter[] Paras)
255
{
256
try
257
{
258
SqlCommand cmd = new SqlCommand();
259
cmd.Connection = conn;
260
cmd.CommandType = CommandType.StoredProcedure;
261
cmd.CommandText = ProcName;
262
263
if (Paras != null)
264
{
265
foreach (IDataParameter Para in Paras)
266
{
267
cmd.Parameters.Add(Para);
268
}
269
}
270
271
Open();
272
cmd.ExecuteNonQuery();
273
}
274
catch (System.Exception exp)
275
{
276
throw (new System.Exception("执行存储过程错误:" + exp.Message));
277
}
278
finally
279
{
280
Close();
281
}
282
}
283
#endregion
284
285
执行存储过程返回DataSet#region 执行存储过程返回DataSet
286
public DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras)
287
{
288
try
289
{
290
SqlCommand cmd = new SqlCommand();
291
cmd.Connection = conn;
292
cmd.CommandType = CommandType.StoredProcedure;
293
cmd.CommandText = ProcName;
294
295
if (Paras != null)
296
{
297
foreach (IDataParameter Para in Paras)
298
{
299
cmd.Parameters.Add(Para);
300
}
301
}
302
303
SqlDataAdapter da = new SqlDataAdapter(cmd);
304
DataSet ds = new DataSet();
305
da.Fill(ds, TableName);
306
return ds;
307
}
308
catch (System.Exception exp)
309
{
310
throw (new System.Exception("执行存储过程返回数据记录集错误:" + exp.Message));
311
}
312
}
313
#endregion
314
315
执行命令返回第一行第一列#region 执行命令返回第一行第一列
316
public object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras)
317
{
318
SqlCommand cmd = new SqlCommand(CommandString, conn);
319
if (Paras != null)
320
{
321
foreach (IDataParameter Para in Paras)
322
{
323
cmd.Parameters.Add(Para);
324
}
325
}
326
object obj = null;
327
try
328
{
329
Open();
330
obj = cmd.ExecuteScalar();
331
return obj;
332
}
333
catch (System.Exception exp)
334
{
335
throw (new System.Exception("执行命令返回第一行第一列错误:" + exp.Message));
336
}
337
finally
338
{
339
Close();
340
}
341
}
342
#endregion
343
344
执行存储过程返回第一行第一列#region 执行存储过程返回第一行第一列
345
public object ExecuteProcScalar(string ProcName, IDataParameter[] Paras)
346
{
347
try
348
{
349
SqlCommand cmd = new SqlCommand();
350
cmd.Connection = conn;
351
cmd.CommandType = CommandType.StoredProcedure;
352
cmd.CommandText = ProcName;
353
354
if (Paras != null)
355
{
356
foreach (IDataParameter Para in Paras)
357
{
358
cmd.Parameters.Add(Para);
359
}
360
}
361
362
object obj = null;
363
obj = GetScalar(cmd);
364
return obj;
365
}
366
catch (System.Exception exp)
367
{
368
throw (new System.Exception("执行存储过程返回第一行第一列错误:" + exp.Message));
369
}
370
}
371
#endregion
372
373
执行命令返回IDataReader#region 执行命令返回IDataReader
374
public IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras)
375
{
376
try
377
{
378
SqlCommand cmd = new SqlCommand(CommandString, conn);
379
if (Paras != null)
380
{
381
foreach (IDataParameter Para in Paras)
382
{
383
cmd.Parameters.Add(Para);
384
}
385
}
386
387
SqlDataReader Reader = null;
388
389
Open();
390
Reader = cmd.ExecuteReader();
391
return Reader;
392
}
393
catch (System.Exception exp)
394
{
395
throw (new System.Exception("执行命令返回数据读取器错误:" + exp.Message));
396
}
397
finally
398
{
399
Close();
400
}
401
}
402
#endregion
403
404
执行存储过程返回IDataReader#region 执行存储过程返回IDataReader
405
public IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras)
406
{
407
try
408
{
409
SqlCommand cmd = new SqlCommand();
410
cmd.Connection = conn;
411
cmd.CommandType = CommandType.StoredProcedure;
412
cmd.CommandText = ProcName;
413
if (Paras != null)
414
{
415
foreach (IDataParameter Para in Paras)
416
{
417
cmd.Parameters.Add(Para);
418
}
419
}
420
421
SqlDataReader Reader = null;
422
423
Open();
424
Reader = cmd.ExecuteReader();
425
return Reader;
426
}
427
catch (System.Exception exp)
428
{
429
throw (new System.Exception("执行存储过程返回数据读取器错误:" + exp.Message));
430
}
431
finally
432
{
433
Close();
434
}
435
}
436
#endregion
437
438
#endregion
439
}
440
#endregion
441
442
OLEDB类#region OLEDB类
443
public class OledbAccess : IDataAccess
444
{
445
IDataAccess 成员#region IDataAccess 成员
446
447
private string strConn;
448
private OleDbConnection conn;
449
450
无参数构造#region 无参数构造
451
public OledbAccess()
452
{
453
strConn = "";
454
conn = new OleDbConnection();
455
}
456
#endregion
457
458
有参数构造#region 有参数构造
459
public OledbAccess(string ConnectionString)
460
{
461
strConn = ConnectionString;
462
conn = new OleDbConnection(strConn);
463
}
464
#endregion
465
466
返回第一行第一列方法#region 返回第一行第一列方法
467
public object GetScalar(OleDbCommand cmd)
468
{
469
object obj = null;
470
try
471
{
472
Open();
473
obj = cmd.ExecuteScalar();
474
}
475
catch (Exception exp)
476
{
477
throw (new Exception("获取第一行第一列数据错误:" + exp.Message));
478
}
479
finally
480
{
481
Close();
482
}
483
return obj;
484
}
485
#endregion
486
487
数据库连接字符串属性器#region 数据库连接字符串属性器
488
public string ConnectionString
489
{
490
get
491
{
492
return strConn;
493
}
494
set
495
{
496
strConn = value;
497
conn.ConnectionString = strConn;
498
}
499
}
500
#endregion
501
502
打开数据库#region 打开数据库
503
public void Open()
504
{
505
try
506
{
507
if (conn.State != ConnectionState.Open) // 判断数据库连接状态是否打开
508
{
509
conn.Open(); // 打开数据库连接
510
}
511
}
512
catch (Exception exp)
513
{
514
throw (new Exception("打开数据库连接错误:" + exp.Message));
515
}
516
}
517
#endregion
518
519
关闭数据库#region 关闭数据库
520
public void Close()
521
{
522
try
523
{
524
if (conn.State != ConnectionState.Closed) // 判断数据库连接是否关闭
525
{
526
conn.Close(); // 关闭数据库连接
527
}
528
}
529
catch (Exception exp)
530
{
531
throw (new Exception("关闭数据库连接错误:" + exp.Message));
532
}
533
}
534
#endregion
535
536
执行命令#region 执行命令
537
public void ExcuteCommand(string CommandString, IDataParameter[] Paras)
538
{
539
try
540
{
541
OleDbCommand cmd = new OleDbCommand(CommandString, conn);
542
if (Paras != null)
543
{
544
foreach (IDataParameter Para in Paras)
545
{
546
cmd.Parameters.Add(Para);
547
}
548
}
549
Open();
550
cmd.ExecuteNonQuery();
551
}
552
catch (System.Exception exp)
553
{
554
throw (new System.Exception("执行命令错误:" + exp.Message));
555
}
556
finally
557
{
558
Close();
559
}
560
}
561
#endregion
562
563
执行命令返回DataSet#region 执行命令返回DataSet
564
public DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras)
565
{
566
try
567
{
568
OleDbCommand cmd = new OleDbCommand(CommandString, conn);
569
if (Paras != null)
570
{
571
foreach (IDataParameter Para in Paras)
572
{
573
cmd.Parameters.Add(Para);
574
}
575
}
576
577
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
578
DataSet ds = new DataSet();
579
da.Fill(ds, TableName);
580
return ds;
581
}
582
catch (System.Exception exp)
583
{
584
throw (new System.Exception("执行命令返回DataSet:" + exp.Message));
585
}
586
}
587
#endregion
588
589
执行存储过程#region 执行存储过程
590
public void ExecuteProc(string ProcName, IDataParameter[] Paras)
591
{
592
try
593
{
594
OleDbCommand cmd = new OleDbCommand();
595
cmd.Connection = conn;
596
cmd.CommandType = CommandType.StoredProcedure;
597
cmd.CommandText = ProcName;
598
599
if (Paras != null)
600
{
601
foreach (IDataParameter Para in Paras)
602
{
603
cmd.Parameters.Add(Para);
604
}
605
}
606
607
Open();
608
cmd.ExecuteNonQuery();
609
}
610
catch (System.Exception exp)
611
{
612
throw (new System.Exception("执行存储过程错误:" + exp.Message));
613
}
614
finally
615
{
616
Close();
617
}
618
}
619
#endregion
620
621
执行存储过程返回DataSet#region 执行存储过程返回DataSet
622
public DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras)
623
{
624
try
625
{
626
OleDbCommand cmd = new OleDbCommand();
627
cmd.Connection = conn;
628
cmd.CommandType = CommandType.StoredProcedure;
629
cmd.CommandText = ProcName;
630
631
if (Paras != null)
632
{
633
foreach (IDataParameter Para in Paras)
634
{
635
cmd.Parameters.Add(Para);
636
}
637
}
638
639
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
640
DataSet ds = new DataSet();
641
da.Fill(ds, TableName);
642
return ds;
643
}
644
catch (System.Exception exp)
645
{
646
throw (new System.Exception("执行存储过程返回数据记录集错误:" + exp.Message));
647
}
648
}
649
#endregion
650
651
执行命令返回第一行第一列#region 执行命令返回第一行第一列
652
public object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras)
653
{
654
OleDbCommand cmd = new OleDbCommand(CommandString, conn);
655
if (Paras != null)
656
{
657
foreach (IDataParameter Para in Paras)
658
{
659
cmd.Parameters.Add(Para);
660
}
661
}
662
object obj = null;
663
try
664
{
665
Open();
666
obj = cmd.ExecuteScalar();
667
return obj;
668
}
669
catch (System.Exception exp)
670
{
671
throw (new System.Exception("执行命令返回第一行第一列错误:" + exp.Message));
672
}
673
finally
674
{
675
Close();
676
}
677
}
678
#endregion
679
680
执行存储过程返回第一行第一列#region 执行存储过程返回第一行第一列
681
public object ExecuteProcScalar(string ProcName, IDataParameter[] Paras)
682
{
683
try
684
{
685
OleDbCommand cmd = new OleDbCommand();
686
cmd.Connection = conn;
687
cmd.CommandType = CommandType.StoredProcedure;
688
cmd.CommandText = ProcName;
689
690
if (Paras != null)
691
{
692
foreach (IDataParameter Para in Paras)
693
{
694
cmd.Parameters.Add(Para);
695
}
696
}
697
698
object obj = null;
699
obj = GetScalar(cmd);
700
return obj;
701
}
702
catch (System.Exception exp)
703
{
704
throw (new System.Exception("执行存储过程返回第一行第一列错误:" + exp.Message));
705
}
706
}
707
#endregion
708
709
执行命令返回IDataReader#region 执行命令返回IDataReader
710
public IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras)
711
{
712
try
713
{
714
OleDbCommand cmd = new OleDbCommand(CommandString, conn);
715
if (Paras != null)
716
{
717
foreach (IDataParameter Para in Paras)
718
{
719
cmd.Parameters.Add(Para);
720
}
721
}
722
723
OleDbDataReader Reader = null;
724
725
Open();
726
Reader = cmd.ExecuteReader();
727
return Reader;
728
}
729
catch (System.Exception exp)
730
{
731
throw (new System.Exception("执行命令返回数据读取器错误:" + exp.Message));
732
}
733
finally
734
{
735
Close();
736
}
737
}
738
#endregion
739
740
执行存储过程返回IDataReader#region 执行存储过程返回IDataReader
741
public IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras)
742
{
743
try
744
{
745
OleDbCommand cmd = new OleDbCommand();
746
cmd.Connection = conn;
747
cmd.CommandType = CommandType.StoredProcedure;
748
cmd.CommandText = ProcName;
749
if (Paras != null)
750
{
751
foreach (IDataParameter Para in Paras)
752
{
753
cmd.Parameters.Add(Para);
754
}
755
}
756
757
OleDbDataReader Reader = null;
758
759
Open();
760
Reader = cmd.ExecuteReader();
761
return Reader;
762
}
763
catch (System.Exception exp)
764
{
765
throw (new System.Exception("执行存储过程返回数据读取器错误:" + exp.Message));
766
}
767
finally
768
{
769
Close();
770
}
771
}
772
#endregion
773
774
#endregion
775
}
776
#endregion
777
}
using System;2
using System.Collections.Generic;3
using System.Text;4
using System.Data;5
using System.Data.SqlClient;6
using System.Data.OleDb;7

8
namespace IDataAccessLib9


{10

类型选择#region 类型选择11
public enum DBAccessType12

{13
SQL, OLEDB14
}15
#endregion16

17

工厂类#region 工厂类18
public class Factory19

{20

SQL工厂#region SQL工厂21
public static IDataAccess GetSqlAccess(DBAccessType Type)22

{23
IDataAccess DBAccess = null;24
switch (Type)25

{26
case DBAccessType.SQL:27

{28
DBAccess = new SqlAccess();29
}30
break;31
}32

33
return DBAccess;34
}35

36
public static IDataAccess GetSqlAccess(DBAccessType Type, string ConnectionString)37

{38
IDataAccess DBAccess = null;39
switch (Type)40

{41
case DBAccessType.SQL:42

{43
DBAccess = new SqlAccess(ConnectionString);44
}45
break;46
}47

48
return DBAccess;49
}50
#endregion51

52

OLEDB工厂#region OLEDB工厂53
public static IDataAccess GetOledbAccess(DBAccessType Type)54

{55
IDataAccess DBAccess = null;56
switch (Type)57

{58
case DBAccessType.OLEDB:59

{60
DBAccess = new OledbAccess();61
}62
break;63
}64
return DBAccess;65
}66

67
public static IDataAccess GetOledbAccess(DBAccessType Type, string ConnectionString)68

{69
IDataAccess DBAccess = null;70
switch (Type)71

{72
case DBAccessType.OLEDB:73

{74
DBAccess = new OledbAccess(ConnectionString);75
}76
break;77
}78
return DBAccess;79
}80
#endregion81
}82
#endregion83

84

接口#region 接口85
public interface IDataAccess86

{87
string ConnectionString88

{89
get;90
set;91
}92

93
void Open();94
void Close();95
void ExcuteCommand(string CommandString, IDataParameter[] Paras);96
DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras);97
void ExecuteProc(string ProcName, IDataParameter[] Paras);98
DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras);99
object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras);100
object ExecuteProcScalar(string ProcName, IDataParameter[] Paras);101
IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras);102
IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras);103
}104
#endregion105

106

SQL类#region SQL类107
public class SqlAccess : IDataAccess108

{109

IDataAccess 成员#region IDataAccess 成员110

111
private string strConn;112
private SqlConnection conn;113

114

无参数构造#region 无参数构造115
public SqlAccess()116

{117
strConn = "";118
conn = new SqlConnection();119
}120
#endregion121

122

有参数构造#region 有参数构造123
public SqlAccess(string ConnectionString)124

{125
strConn = ConnectionString;126
conn = new SqlConnection(strConn);127
}128
#endregion129

130

返回第一行第一列方法#region 返回第一行第一列方法131
public object GetScalar(SqlCommand cmd)132

{133
object obj = null;134
try135

{136
Open();137
obj = cmd.ExecuteScalar();138
}139
catch (Exception exp)140

{141
throw (new Exception("获取第一行第一列数据错误:" + exp.Message));142
}143
finally144

{145
Close();146
}147
return obj;148
}149
#endregion150

151

数据库连接字符串属性器#region 数据库连接字符串属性器152
public string ConnectionString153

{154
get155

{156
return strConn;157
}158
set159

{160
strConn = value;161
conn.ConnectionString = strConn;162
}163
}164
#endregion165

166

打开数据库#region 打开数据库167
public void Open()168

{169
try170

{171
if (conn.State != ConnectionState.Open) // 判断数据库连接状态是否打开172

{173
conn.Open(); // 打开数据库连接174
}175
}176
catch (Exception exp)177

{178
throw (new Exception("打开数据库连接错误:" + exp.Message));179
}180
}181
#endregion182

183

关闭数据库#region 关闭数据库184
public void Close()185

{186
try187

{188
if (conn.State != ConnectionState.Closed) // 判断数据库连接是否关闭189

{190
conn.Close(); // 关闭数据库连接191
}192
}193
catch (Exception exp)194

{195
throw (new Exception("关闭数据库连接错误:" + exp.Message));196
}197
}198
#endregion199

200

执行命令#region 执行命令201
public void ExcuteCommand(string CommandString, IDataParameter[] Paras)202

{203
try204

{205
SqlCommand cmd = new SqlCommand(CommandString, conn);206
if (Paras != null)207

{208
foreach (IDataParameter Para in Paras)209

{210
cmd.Parameters.Add(Para);211
}212
}213
Open();214
cmd.ExecuteNonQuery();215
}216
catch (System.Exception exp)217

{218
throw (new System.Exception("执行命令错误:" + exp.Message));219
}220
finally221

{222
Close();223
}224
}225
#endregion226

227

执行命令返回DataSet#region 执行命令返回DataSet228
public DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras)229

{230
try231

{232
SqlCommand cmd = new SqlCommand(CommandString, conn);233
if (Paras != null)234

{235
foreach (IDataParameter Para in Paras)236

{237
cmd.Parameters.Add(Para);238
}239
}240

241
SqlDataAdapter da = new SqlDataAdapter(cmd);242
DataSet ds = new DataSet();243
da.Fill(ds, TableName);244
return ds;245
}246
catch (System.Exception exp)247

{248
throw (new System.Exception("执行命令返回DataSet:" + exp.Message));249
}250
}251
#endregion252

253

执行存储过程#region 执行存储过程254
public void ExecuteProc(string ProcName, IDataParameter[] Paras)255

{256
try257

{258
SqlCommand cmd = new SqlCommand();259
cmd.Connection = conn;260
cmd.CommandType = CommandType.StoredProcedure;261
cmd.CommandText = ProcName;262

263
if (Paras != null)264

{265
foreach (IDataParameter Para in Paras)266

{267
cmd.Parameters.Add(Para);268
}269
}270

271
Open();272
cmd.ExecuteNonQuery();273
}274
catch (System.Exception exp)275

{276
throw (new System.Exception("执行存储过程错误:" + exp.Message));277
}278
finally279

{280
Close();281
}282
}283
#endregion284

285

执行存储过程返回DataSet#region 执行存储过程返回DataSet286
public DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras)287

{288
try289

{290
SqlCommand cmd = new SqlCommand();291
cmd.Connection = conn;292
cmd.CommandType = CommandType.StoredProcedure;293
cmd.CommandText = ProcName;294

295
if (Paras != null)296

{297
foreach (IDataParameter Para in Paras)298

{299
cmd.Parameters.Add(Para);300
}301
}302

303
SqlDataAdapter da = new SqlDataAdapter(cmd);304
DataSet ds = new DataSet();305
da.Fill(ds, TableName);306
return ds;307
}308
catch (System.Exception exp)309

{310
throw (new System.Exception("执行存储过程返回数据记录集错误:" + exp.Message));311
}312
}313
#endregion314

315

执行命令返回第一行第一列#region 执行命令返回第一行第一列316
public object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras)317

{318
SqlCommand cmd = new SqlCommand(CommandString, conn);319
if (Paras != null)320

{321
foreach (IDataParameter Para in Paras)322

{323
cmd.Parameters.Add(Para);324
}325
}326
object obj = null;327
try328

{329
Open();330
obj = cmd.ExecuteScalar();331
return obj;332
}333
catch (System.Exception exp)334

{335
throw (new System.Exception("执行命令返回第一行第一列错误:" + exp.Message));336
}337
finally338

{339
Close();340
}341
}342
#endregion343

344

执行存储过程返回第一行第一列#region 执行存储过程返回第一行第一列345
public object ExecuteProcScalar(string ProcName, IDataParameter[] Paras)346

{347
try348

{349
SqlCommand cmd = new SqlCommand();350
cmd.Connection = conn;351
cmd.CommandType = CommandType.StoredProcedure;352
cmd.CommandText = ProcName;353

354
if (Paras != null)355

{356
foreach (IDataParameter Para in Paras)357

{358
cmd.Parameters.Add(Para);359
}360
}361

362
object obj = null;363
obj = GetScalar(cmd);364
return obj;365
}366
catch (System.Exception exp)367

{368
throw (new System.Exception("执行存储过程返回第一行第一列错误:" + exp.Message));369
}370
}371
#endregion372

373

执行命令返回IDataReader#region 执行命令返回IDataReader374
public IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras)375

{376
try377

{378
SqlCommand cmd = new SqlCommand(CommandString, conn);379
if (Paras != null)380

{381
foreach (IDataParameter Para in Paras)382

{383
cmd.Parameters.Add(Para);384
}385
}386

387
SqlDataReader Reader = null;388

389
Open();390
Reader = cmd.ExecuteReader();391
return Reader;392
}393
catch (System.Exception exp)394

{395
throw (new System.Exception("执行命令返回数据读取器错误:" + exp.Message));396
}397
finally398

{399
Close();400
}401
}402
#endregion403

404

执行存储过程返回IDataReader#region 执行存储过程返回IDataReader405
public IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras)406

{407
try408

{409
SqlCommand cmd = new SqlCommand();410
cmd.Connection = conn;411
cmd.CommandType = CommandType.StoredProcedure;412
cmd.CommandText = ProcName;413
if (Paras != null)414

{415
foreach (IDataParameter Para in Paras)416

{417
cmd.Parameters.Add(Para);418
}419
}420

421
SqlDataReader Reader = null;422

423
Open();424
Reader = cmd.ExecuteReader();425
return Reader;426
}427
catch (System.Exception exp)428

{429
throw (new System.Exception("执行存储过程返回数据读取器错误:" + exp.Message));430
}431
finally432

{433
Close();434
}435
}436
#endregion437

438
#endregion439
}440
#endregion441

442

OLEDB类#region OLEDB类443
public class OledbAccess : IDataAccess444

{445

IDataAccess 成员#region IDataAccess 成员446

447
private string strConn;448
private OleDbConnection conn;449

450

无参数构造#region 无参数构造451
public OledbAccess()452

{453
strConn = "";454
conn = new OleDbConnection();455
}456
#endregion457

458

有参数构造#region 有参数构造459
public OledbAccess(string ConnectionString)460

{461
strConn = ConnectionString;462
conn = new OleDbConnection(strConn);463
}464
#endregion465

466

返回第一行第一列方法#region 返回第一行第一列方法467
public object GetScalar(OleDbCommand cmd)468

{469
object obj = null;470
try471

{472
Open();473
obj = cmd.ExecuteScalar();474
}475
catch (Exception exp)476

{477
throw (new Exception("获取第一行第一列数据错误:" + exp.Message));478
}479
finally480

{481
Close();482
}483
return obj;484
}485
#endregion486

487

数据库连接字符串属性器#region 数据库连接字符串属性器488
public string ConnectionString489

{490
get491

{492
return strConn;493
}494
set495

{496
strConn = value;497
conn.ConnectionString = strConn;498
}499
}500
#endregion501

502

打开数据库#region 打开数据库503
public void Open()504

{505
try506

{507
if (conn.State != ConnectionState.Open) // 判断数据库连接状态是否打开508

{509
conn.Open(); // 打开数据库连接510
}511
}512
catch (Exception exp)513

{514
throw (new Exception("打开数据库连接错误:" + exp.Message));515
}516
}517
#endregion518

519

关闭数据库#region 关闭数据库520
public void Close()521

{522
try523

{524
if (conn.State != ConnectionState.Closed) // 判断数据库连接是否关闭525

{526
conn.Close(); // 关闭数据库连接527
}528
}529
catch (Exception exp)530

{531
throw (new Exception("关闭数据库连接错误:" + exp.Message));532
}533
}534
#endregion535

536

执行命令#region 执行命令537
public void ExcuteCommand(string CommandString, IDataParameter[] Paras)538

{539
try540

{541
OleDbCommand cmd = new OleDbCommand(CommandString, conn);542
if (Paras != null)543

{544
foreach (IDataParameter Para in Paras)545

{546
cmd.Parameters.Add(Para);547
}548
}549
Open();550
cmd.ExecuteNonQuery();551
}552
catch (System.Exception exp)553

{554
throw (new System.Exception("执行命令错误:" + exp.Message));555
}556
finally557

{558
Close();559
}560
}561
#endregion562

563

执行命令返回DataSet#region 执行命令返回DataSet564
public DataSet GetDataSetFromExcuteCommand(string CommandString, string TableName, IDataParameter[] Paras)565

{566
try567

{568
OleDbCommand cmd = new OleDbCommand(CommandString, conn);569
if (Paras != null)570

{571
foreach (IDataParameter Para in Paras)572

{573
cmd.Parameters.Add(Para);574
}575
}576

577
OleDbDataAdapter da = new OleDbDataAdapter(cmd);578
DataSet ds = new DataSet();579
da.Fill(ds, TableName);580
return ds;581
}582
catch (System.Exception exp)583

{584
throw (new System.Exception("执行命令返回DataSet:" + exp.Message));585
}586
}587
#endregion588

589

执行存储过程#region 执行存储过程590
public void ExecuteProc(string ProcName, IDataParameter[] Paras)591

{592
try593

{594
OleDbCommand cmd = new OleDbCommand();595
cmd.Connection = conn;596
cmd.CommandType = CommandType.StoredProcedure;597
cmd.CommandText = ProcName;598

599
if (Paras != null)600

{601
foreach (IDataParameter Para in Paras)602

{603
cmd.Parameters.Add(Para);604
}605
}606

607
Open();608
cmd.ExecuteNonQuery();609
}610
catch (System.Exception exp)611

{612
throw (new System.Exception("执行存储过程错误:" + exp.Message));613
}614
finally615

{616
Close();617
}618
}619
#endregion620

621

执行存储过程返回DataSet#region 执行存储过程返回DataSet622
public DataSet GetDataSetFromExcuteProc(string ProcName, string TableName, IDataParameter[] Paras)623

{624
try625

{626
OleDbCommand cmd = new OleDbCommand();627
cmd.Connection = conn;628
cmd.CommandType = CommandType.StoredProcedure;629
cmd.CommandText = ProcName;630

631
if (Paras != null)632

{633
foreach (IDataParameter Para in Paras)634

{635
cmd.Parameters.Add(Para);636
}637
}638

639
OleDbDataAdapter da = new OleDbDataAdapter(cmd);640
DataSet ds = new DataSet();641
da.Fill(ds, TableName);642
return ds;643
}644
catch (System.Exception exp)645

{646
throw (new System.Exception("执行存储过程返回数据记录集错误:" + exp.Message));647
}648
}649
#endregion650

651

执行命令返回第一行第一列#region 执行命令返回第一行第一列652
public object ExecuteCommandScalar(string CommandString, IDataParameter[] Paras)653

{654
OleDbCommand cmd = new OleDbCommand(CommandString, conn);655
if (Paras != null)656

{657
foreach (IDataParameter Para in Paras)658

{659
cmd.Parameters.Add(Para);660
}661
}662
object obj = null;663
try664

{665
Open();666
obj = cmd.ExecuteScalar();667
return obj;668
}669
catch (System.Exception exp)670

{671
throw (new System.Exception("执行命令返回第一行第一列错误:" + exp.Message));672
}673
finally674

{675
Close();676
}677
}678
#endregion679

680

执行存储过程返回第一行第一列#region 执行存储过程返回第一行第一列681
public object ExecuteProcScalar(string ProcName, IDataParameter[] Paras)682

{683
try684

{685
OleDbCommand cmd = new OleDbCommand();686
cmd.Connection = conn;687
cmd.CommandType = CommandType.StoredProcedure;688
cmd.CommandText = ProcName;689

690
if (Paras != null)691

{692
foreach (IDataParameter Para in Paras)693

{694
cmd.Parameters.Add(Para);695
}696
}697

698
object obj = null;699
obj = GetScalar(cmd);700
return obj;701
}702
catch (System.Exception exp)703

{704
throw (new System.Exception("执行存储过程返回第一行第一列错误:" + exp.Message));705
}706
}707
#endregion708

709

执行命令返回IDataReader#region 执行命令返回IDataReader710
public IDataReader GetDataReaderFromExcuteCommand(string CommandString, IDataParameter[] Paras)711

{712
try713

{714
OleDbCommand cmd = new OleDbCommand(CommandString, conn);715
if (Paras != null)716

{717
foreach (IDataParameter Para in Paras)718

{719
cmd.Parameters.Add(Para);720
}721
}722

723
OleDbDataReader Reader = null;724

725
Open();726
Reader = cmd.ExecuteReader();727
return Reader;728
}729
catch (System.Exception exp)730

{731
throw (new System.Exception("执行命令返回数据读取器错误:" + exp.Message));732
}733
finally734

{735
Close();736
}737
}738
#endregion739

740

执行存储过程返回IDataReader#region 执行存储过程返回IDataReader741
public IDataReader GetDataReaderFromExcuteProc(string ProcName, IDataParameter[] Paras)742

{743
try744

{745
OleDbCommand cmd = new OleDbCommand();746
cmd.Connection = conn;747
cmd.CommandType = CommandType.StoredProcedure;748
cmd.CommandText = ProcName;749
if (Paras != null)750

{751
foreach (IDataParameter Para in Paras)752

{753
cmd.Parameters.Add(Para);754
}755
}756

757
OleDbDataReader Reader = null;758

759
Open();760
Reader = cmd.ExecuteReader();761
return Reader;762
}763
catch (System.Exception exp)764

{765
throw (new System.Exception("执行存储过程返回数据读取器错误:" + exp.Message));766
}767
finally768

{769
Close();770
}771
}772
#endregion773

774
#endregion775
}776
#endregion777
}