不直接用SqlTransaction也能实现数据库事务——简单的SqlTransaction方法

在实际工作的中,很多人经常需要实现数据库的事务,如果每次都用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语句需要放在一个事务里实现执行,大家就可以用下面这个方法:

  ///

  /// 执行多条 SQL语句,实现数据库事务。

  ///

  /// 多条 SQL语句

  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
  {

  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);

  }

  }

  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值