设为首页 加入收藏

TOP

我与ADO.NET二三事(一)
2015-11-21 02:04:02 来源: 作者: 【 】 浏览:0
Tags:我与 ADO.NET 二三
天气渐冷,闲来无事就把业余时间自己使用的数据访问库凉一凉.这个库本人自己使用了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
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/14/14
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Database 'xxxx' is bein.. 下一篇磁盘空间&SQL日志&作业执行情况

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: