开发者社区> 技术小阿哥> 正文

让数据库访问组件支持Using

简介:
+关注继续查看

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

20110129003.jpg

20110129001.jpg

20110129002.jpg

//------------------------------------------------------------
// 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>
publicabstractclass BaseDbHelper : IDisposable // IDbHelper
   {

       代码省略

publicvoid 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;
       }
   }
}


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

privatevoid TestUsing()
       {
using (IDbHelper dbHelper =new SqlHelper(BaseSystemInfo.UserCenterDbConnection))
           {
               dbHelper.ExecuteNonQuery(
" SELECT GETDATE() ");
           }
       }


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




本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1200877,如需转载请自行联系原作者

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

相关文章
从零开始学设计模式(十七): 备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern)又叫快照模式,它指的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。它是一种对象行为型模式。
6 0
Emoji 表情符号那些坑
Emoji 表情符号那些坑
5 0
数据库五章其二第四讲 ——SQL
数据库五章其二第四讲 ——SQL
4 0
JWT技术分享
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
5 0
实战营第三期:MySQL数据库进阶实战
实战营第三期:MySQL数据库进阶实战
7 0
为什么要做安全加固?
为什么要做安全加固?
6 0
第一期学习报告
第一期学习报告
5 0
A站近千万条用户数据外泄,有你吗?
A站近千万条用户数据外泄,有你吗?
5 0
冬季实战营第三期:MySQL数据库进阶实战
冬季实战营第三期:MySQL数据库进阶实战
5 0
数据库五章其三 ——视图与索引
数据库五章其三 ——视图与索引
6 0
13692
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载