开发框架修正重要bug,使用SqlDataAdapter.Update方法后没有关闭SQL连接

  开发框架修正重要bug,使用SqlDataAdapter.Update方法后没有关闭SQL连接

开发框架修正重要bug,使用SqlDataAdapter.Update方法后没有关闭SQL连接



解决方案:


定义_CurrentConnection 成员变量,BeginTransaction方法内实例化,然后在CommitTransaction,RollbackTransaction方法内关闭连接。

若没有使用dalBase基类,定制的源码使用SqlDataAdapter.Update方法要注意关闭连接。

修改dalBase.cs文件,新加及修改的代码参考:


C# Code:


/// <summary>
/// 当前启用的事务
/// </summary>
protected SqlTransaction _CurrentTrans = null;

/// <summary>
/// 当前事务的连接
/// </summary>
protected SqlConnection _CurrentConnection = null;

/// <summary>
/// 启用事务控制
/// </summary>
protected virtual void BeginTransaction()
{
   _CurrentConnection = DataProvider.Instance.CreateConnection(_DBName);
   _CurrentTrans = _CurrentConnection.BeginTransaction();
}

/// <summary>
/// 提交事务
/// </summary>
protected virtual void CommitTransaction()
{
   try
   {
      if (_CurrentTrans != null)
      {
         _CurrentTrans.Commit();
         _CurrentTrans = null;
         DataProvider.Instance.CloseConnection(_CurrentConnection);
      }
   }
   catch
   {
      DataProvider.Instance.CloseConnection(_CurrentConnection);
      throw;
   }
}

/// <summary>
/// 事务回滚
/// </summary>
protected virtual void RollbackTransaction()
{
   try
   {
      if (_CurrentTrans != null)
      {
         _CurrentTrans.Rollback();
         _CurrentTrans = null;
         DataProvider.Instance.CloseConnection(_CurrentConnection);
      }
   }
   catch
   {
      DataProvider.Instance.CloseConnection(_CurrentConnection);
      throw;
   }
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898




C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

开发框架修正重要bug,使用SqlDataAdapter.Update方法没有关闭SQL连接
C#使用using语法自动关闭SQLConnection数据库连接
V4:菜单管理有bug, 已修正
SQL连接字符串设置连接
SQL连接池完整测试报告
校验明细表数据ValidatingDetailData方法BUG
运行开发框架SQL连接池变动情况测试报告
SQL Server连接池基本原理
开发框架怎样设置管理员用户 tb_MeyUser表重要字段详解
BUG: dalUser.CopyPermission方法
SqlDataAdapter.FillSchema(DataTable)方法填充数据表的主键和约束
Web开发框架,WebApi端主流开发框架介绍
使用T-SQL语句配置SQL Server连接池允许的并发用户连接的最大数目
对象的属性若使用get;set;访问器没有指定成员变量,代码混淆会丢失数据
WebApi快速开发框架,C# ASP.NET开发平台
权限管理发现两处BUG及解决方法
.Net框架|WebApi服务端开发框架|C/S框架网原创作品
CS框架V2.2支持三种SQL连接配置存储位置
SQLServer连接字符串连接池详解,Pooling=True/False区别
微信小程序框架 | C# ASP.NET服务端WebApi快速开发框架平台