C# 对事务的代码封装

/// <summary>
/// 执行事务,执行多条sql语句,成功就全部成功,不成功就全部不成功
/// </summary>
public static bool UpDateByTransaction(List<string> strUpdate) 
{
  OracleConnection myConnection = new OracleConnection(connectionString);
  OracleCommand myORACCommand = myConnection.CreateCommand();
  try
  {
    myConnection.Open();
    myORACCommand.Transaction = myConnection.BeginTransaction();  //开启事务
    foreach (string str in strUpdate) 
    {
      myORACCommand.CommandText = str;
      myORACCommand.ExecuteNonQuery(); 
    }
    myORACCommand.Transaction.Commit();  //提交事务(同时还要自动清除事务)
    return true;  //如果事务执行成功,则返回true
  }
  catch (Exception ex)
  {
    if (myORACCommand.Transaction != null) 
    {
      myORACCommand.Transaction.Rollback();   //事务执行失败,对事务进行回滚(并且自动清除事务)
    }
    throw new Exception("调用方法UpDateByTransaction(List<string> strUpdate)失败" + ex.Message);
  }
  finally 
  {
    if (myORACCommand.Transaction != null) 
    {
      myORACCommand.Transaction = null; myORACCommand.Transaction.Commit();
    }
    myConnection.Close();
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值