实现数据库事务的方法ExecuteSqlTran()


在实际的工作,很多人经常需要实现数据库的事务,如果每次用SqlTransaction 写代码会特别麻烦,本文将重点介绍一个通用的方法放在数据层,此示例可以满足一般情况下的需求:

  同时执行两条SQL语句的示例方法:

public static void ExecuteSqlTran(string SQLString1,string SQLString2)
  {
   using (SqlConnection conn = new SqlConnection(strDBConnectionString))
   {
    conn.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection=conn;   
    SqlTransaction tx=conn.BeginTransaction();  
    cmd.Transaction=tx;   
    try
    {    
     cmd.CommandText=SQLString1;
     cmd.ExecuteNonQuery();
     cmd.CommandText=SQLString2;
     cmd.ExecuteNonQuery();    
     tx.Commit();    
    }
    catch(System.Data.SqlClient.SqlException E)
    { 
     tx.Rollback();
     throw new Exception(E.Message);
    }
   }
  }


  假如有多条SQL语句需要放在一个事务里实现执行,就用下面这个方法:

/// <summary> /// 执行多条SQL语句,实现数据库事务。 /// </summary> /// <param name="SQLStringList">多条SQL语句</param> public static void ExecuteSqlTran(ArrayList SQLStringList) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection=conn; SqlTransaction tx=conn.BeginTransaction(); cmd.Transaction=tx; try { for(int n=0;n<SQLStringList.Count;n++) { string strsql=SQLStringList[n].ToString(); if (strsql.Trim().Length>1) { cmd.CommandText=strsql; cmd.ExecuteNonQuery(); } } tx.Commit(); } catch(System.Data.SqlClient.SqlException E) { tx.Rollback(); throw new Exception(E.Message); } } }

本文作者:



相关阅读:
DISCUZ 论坛管理员密码忘记的解决方法
找到MySQL的优点
SQL 2005中的SSIS与Oracle数据库的迁移性能
Oracle清理和重建临时表空间
掌握盒模型轻松DIV CSS网页布局
IE中img多出5px的空白解决4种方法
php 上一篇,下一篇文章实现代码与原理说明
简单介绍Linux Ubuntu虚拟安装版本
oracle中自连接与case when,decode使用实例
系统死锁和资源管理器崩溃时设置XP自动重启
jquery1.4 教程三 新增方法教程
Transact-SQL 语言概述
深入挖掘Windows系统的实用小工具
Google Chrome浏览器第一次升级
快速导航

Copyright © 2016 phpStudy |