zoukankan      html  css  js  c++  java
  • 让数据库访问组件支持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() ");
                }
            }

      

  • 相关阅读:
    17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
    17.1.2 Replication Formats
    Setting the Master Configuration on the Slave
    17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment
    17.1.1.8 Setting Up Replication with Existing Data
    17.1.1.7 Setting Up Replication with New Master and Slaves
    17.1.1.6 Creating a Data Snapshot Using Raw Data Files
    列出display的值,并说明它们的作用
    CSS设置DIV居中
    CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?
  • 原文地址:https://www.cnblogs.com/top5/p/1949110.html
Copyright © 2011-2022 走看看