开发者社区> 科技小能手> 正文

让数据库访问组件支持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() ");
            }
        }

  


本文转自jirigala_bao 51CTO博客,原文链接:http://blog.51cto.com/jirigala/810679

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
你知道学校里的MySQL与社会中的MySQL有啥区别吗?(详解三基准测试)
本文经验都是我看书学习的总结的一些经验,面试常问的知识点,所以请关注后再继续观看学习!下面已经给出了书的目录!今后将按目录的顺序继续更新学习心得!接上文继续分享
4 0
长文预警,一篇文章扫盲Python、NumPy 和 Pandas,建议收藏慢慢看
今天我们来一篇超级长文,一次性扫盲Python、NumPy 和 Pandas
5 0
你知道学校里的MySQL与社会中的MySQL有啥区别吗?(详解四服务器性能剖析)
本文经验都是我看书学习的总结的一些经验,面试常问的知识点,所以请关注后再继续观看学习!下面已经给出了书的目录!今后将按目录的顺序继续更新学习心得!接上文继续分享
5 0
Redis你能跟面试官聊哪些?
以上文章讲述的是【数据库性能调优知识与面试知识(详解四服务器性能剖析)】接下来我总结一下【Redis入门知识点】。
4 0
冬季实战营第三期:MySQL数据库进阶实战
冬季实战营第三期:MySQL数据库进阶实战
5 0
【Nest教程】连接MySQL数据库
【Nest教程】连接MySQL数据库
4 0
win10 安装 MySQL8.0版本
win10 安装 MySQL8.0版本
5 0
万字长文Python面试题,年后找工作就靠这了(二)
万字长文Python面试题,年后找工作就靠这了(二)
4 0
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
5 0
23705
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载