博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让数据库访问组件支持Using
阅读量:6291 次
发布时间:2019-06-22

本文共 1486 字,大约阅读时间需要 4 分钟。

以前一直以为把数据库访问层已经写得很完美了,今天无意中一个客户提醒、现在的数据库访问层不只是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

转载地址:http://objta.baihongyu.com/

你可能感兴趣的文章
信息检索技术——布尔检索
查看>>
[转] MongoDB 入门
查看>>
【Boost】timer、progress_timer和progress_display
查看>>
最常用的CURL命令大全
查看>>
sudami和achillis对初学者的建议
查看>>
搜狗双拼如何打单韵母字
查看>>
Sealed,new,virtual,abstract与override的区别
查看>>
写给要买Surface的各位兄弟
查看>>
关于遮罩层无效的记录
查看>>
动态操作表格
查看>>
GOF对Builder模式的定义(转载)
查看>>
Photoshop图层混合模式计算公式大全
查看>>
ylb:创建数据库、表,对表的增查改删语句
查看>>
js正則表達式语法
查看>>
Android中Preference的使用以及监听事件分析
查看>>
线程同步 – lock和Monitor
查看>>
Java_获取当前月最后一天
查看>>
Cocos2d:使用 CCCamera 做滚动效果 (Four Ways of Scrolling with Cocos2D)
查看>>
RGB HSV HLS三种色彩模式转换(C语言实现)
查看>>
PHP变量在内存中的存储方式
查看>>