让数据库访问组件支持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

相关文章
|
4月前
|
设计模式 Oracle 关系型数据库
二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!
二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!
|
6月前
|
前端开发 Java 数据库连接
“构建高级自定义MVC框架实现CRUD功能的完整指南“
“构建高级自定义MVC框架实现CRUD功能的完整指南“
25 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL视图与管理工具:简化数据操作与高效管理
本文深入介绍了MySQL数据库中的视图与管理工具,通过详细的代码示例,阐述了视图的创建与使用、视图与性能优化的关系,以及MySQL Workbench等管理工具的功能和优势。视图作为虚拟表可以简化复杂的数据操作,提高查询效率,而MySQL Workbench作为强大的数据库管理工具,可图形化地进行数据库设计、查询、监控和权限管理。通过实际案例,本文展示了如何使用SQL语句创建视图,从而简化操作和优化性能。同时,通过MySQL Workbench的介绍,读者可以了解如何利用图形界面进行数据库管理,使得数据库设计与维护更加高效和方便。
108 0
|
JavaScript 前端开发 编译器
第三十九章 构建数据库应用程序 - 将数据绑定到表单
第三十九章 构建数据库应用程序 - 将数据绑定到表单
|
SQL 数据库 C++
C/C++ Qt 数据库QSql增删改查组件应用
Qt SQL模块是Qt中用来操作数据库的类,该类封装了各种SQL数据库接口,可以很方便的链接并使用,数据的获取也使用了典型的Model/View结构,通过MV结构映射我们可以实现数据与通用组件的灵活绑定,一般SQL组件常用的操作,包括,读取数据,插入数据,更新数据,删除数据,这四个功能我将分别介绍它是如何使用的。
288 0
C/C++ Qt 数据库QSql增删改查组件应用
|
XML SQL Java
SSM 最灵活实现动态切换操作多数据源
SSM 最灵活实现动态切换操作多数据源
202 0
SSM 最灵活实现动态切换操作多数据源
|
关系型数据库 MySQL 数据库
二十九、优化数据库访问
二十九、优化数据库访问
75 0
二十九、优化数据库访问
|
SQL XML 缓存
MyBatis框架使用解析!数据库相关API的基本介绍
本篇文章中对MyBatis框架中的具体使用进行了详细的分析说明。介绍了在Java项目使用的各种API的基本方式。包括动态SQL,多数据库支持,脚本语言,Java中各种语句执行方法,SELECT语句的高级使用,清除批量更新的方法以及事务控制的方法。
153 0
MyBatis框架使用解析!数据库相关API的基本介绍
|
SQL 缓存 Oracle
1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主从库、多库的需求。
3583 0
|
SQL PHP 数据库