天气渐冷,闲来无事就把业余时间自己使用的数据访问库凉一凉.这个库本人自己使用了2年多,主要用于个人学习时需要操作
数据库时使用,非组织和商业性质的使用.记得上学的时候,在网络上看到SqlServerHelper操作ADO.NET甚方便,一下子就着了迷不管学习还是工作都会带上这个Class,甚至我的U盘里面也会存上这个Class,哈哈.随着工作经验和沿街的开阔,我渐渐的有了自己的ADO.NET操作习惯以及封装使用方式.因此就写了Basic.Data.dll,言归正传.
?
1.Database:主要用于存储数据连接字符串,配置节名称,ADO.NET数据基础工厂,Database由IDatabaseProvide接口提供.
?
2.DatabaseConnection:用于
数据库连接,和数据库连接状态等提供者,主要由IDatabaseConnectionProvide接口提供.
?
3.DatabaseCommandText,DatabaseCommandProcedure:用于执行Command和Procedure操作.分别由IDatabaseCommandTextAsyncProvide,IDatabaseCommandProcedure接口提供.
?
4.DatabaseCommandTextAsync,DatabaseCommandProcedureAsync:用于异步执行Command和Procedure操作.分别由IDatabaseCommandTextAsyncProvide和IDatabaseCommandProcedureAsyncProvide接口提供.
?
5.DatabaseOperation:是过程执行SQL操作的封装.这个会提供代码演示.
?
6.OperationValue:所有Command操作返回的结果,存储在该类的Value属性上.
?
*******************************************************************************************************************************
?
Database:
1 public class Database : IDatabaseProvide
2 {
3 ///
4 /// 内置默认识别Config Key:DatabaseProvide和DatabaseProvideConnectionString
5 ///
6 public Database()
7 {
8 this.DatabaseProvideName = ConfigurationManager.AppSettings["DatabaseProvide"];
9 this.ConnectionString = ConfigurationManager.AppSettings["DatabaseProvideConnectionString"];
10 this.Initialization();
11 }
12
13 public Database(string argument_ProvideName)
14 {
15 this.DatabaseProvideName = argument_ProvideName;
16 this.ConnectionString = ConfigurationManager.AppSettings["DatabaseProvideConnectionString"];
17 this.Initialization();
18 }
19
20 public Database(string argument_ProvideName, string argument_ConnectionString)
21 {
22 this.DatabaseProvideName = argument_ProvideName;
23 this.ConnectionString = argument_ConnectionString;
24 this.Initialization();
25 }
26
27 public string DatabaseProvideName { get; set; }
28 internal string ConnectionString { get; set; }
29 internal DbProviderFactory Factory { get; set; }
30
31 public void Initialization()
32 {
33 this.Factory = DbProviderFactories.GetFactory(this.DatabaseProvideName);
34 }
35 }
?
数据连接配置只需要在Config配置文件上配置如下:
?
?
Database分别提供了三个构造方式,第一种是默认走配置创建(key:DatabaseProvide,DatabaseProvideConnectionString必须).第二种提供ProvideName配置名称,这个构造主要一般可能使用的ODBC驱动等连接方式,但DatabaseProvideConnectionString必须指定.第三种构造主要自己实现的Provide和连接.这个我没有提供相应的扩展,需要自己去敲定.这样Database引擎就创建出来.提供的接口也很简单:
?
1 public interface IDatabaseProvide
2 {
3 void Initialization();
4 }
?
?
?
DatabaseConnection:
?
?
1 public sealed class DatabaseConnection : IDatabaseConnectionProvide
2 {
3 public DatabaseConnection(Database argument_Provide)
4 {
5 this.Initialization(argument_Provide);
6 }
7
8 internal DbConnection Connection { get; private set; }
9 internal Database DatabaseProvide
10 {
11 get; set;
12 }
13
14 public ConnectionState DatabaseConnectionState
15 {
16 get
17 {
18 return this.Connection.State;
19 }
20 }
21
22 private void Initialization(Database argument_DatabaseProvide)
23 {
24 if (null == this.Connection)
25 {
26 this.DatabaseProvide = argument_Datab