让数据库访问组件支持Using

以前一直以为把数据库访问层已经写得很完美了,今天无意中一个客户提醒、现在的数据库访问层不只是Using语句,可能是编程习惯的原因一直不怎么用Using这个写法,的确是自己做得不好,马上针对客户的反馈意见进行了改进,增加了IDisposable接口的实现。

// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
// ------------------------------------------------------------

using  System;
using  System.Data;
using  System.Data.Common;
using  System.IO;
using  System.Text;

namespace  DotNet.DbUtilities
{
    
using  DotNet.Utilities;

    
///   <summary>
    
///  BaseDbHelper
    
///  有关数据库连接的方法。
    
///  
    
///  修改纪录
    
///
    
///         2011.01.29 版本:3.1 JiRiGaLa 实现IDisposable接口。
    
///         2010.06.13 版本:3.0 JiRiGaLa 改进为支持静态方法,不用数据库Open、Close的方式,AutoOpenClose开关。
    
///         2010.03.14 版本:2.0 JiRiGaLa 无法彻底释放、并发时出现异常问题解决。
    
///         2009.11.25 版本:1.0 JiRiGaLa 改进ConnectionString。
    
///  
    
///  版本:3.1
    
///  
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2011.01.29 </date>
    
///   </author>  
    
///   </summary>
     public   abstract   class  BaseDbHelper : IDisposable  //  IDbHelper
    {

        代码省略

        
public   void  Dispose()
        {
            
this .dbCommand  =   null ;
            
this .dbDataAdapter  =   null ;
            
this .dbTransaction  =   null ;
            
//  关闭数据库连接
             if  ( this .dbConnection  !=   null )
            {
                
if  ( this .dbConnection.State  !=  ConnectionState.Closed)
                {
                    
this .dbConnection.Close();
                }
            }
            
this .dbConnection  =   null ;
        }
    }
}
复制代码

  

   经过测试,顺利调试成功,又完善了一下,心里舒坦了很多。

         private   void  TestUsing()
        {
            
using  (IDbHelper dbHelper  =   new  SqlHelper(BaseSystemInfo.UserCenterDbConnection))
            {
                dbHelper.ExecuteNonQuery(
"  SELECT GETDATE()  " );
            }
        }
复制代码

  

   客户多了有一个好处,很多问题都会得到及时的反馈,同时修改一个错误,改进了功能,又有几十几百的客户收益,会很有成就感。

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
 

你可能感兴趣的:(编程,接口,完美,休闲,数据库访问)