C# MySQL DBHelper事务回滚

C# MySQL DBHelper事务回滚

public static bool Add(List<T> list)
{
 string conn="连接字符串";
 using (MySqlConnection myConn = new MySqlConnection(conn))
 {
   myConn.Open();
   //创建事务 并且启动
   MySqlTransaction transaction = myConn.BeginTransaction();
   try
   {
     string masterSQL= string.Format("主表新增语句");
     MySqlCommand cmd = new MySqlCommand(masterSQL, myConn);
     bool success = cmd.ExecuteNonQuery() > 0;
     if (success)
     {
        //获取主表新增成功自增ID
        long id = cmd.LastInsertedId;
        for(int i = 0; i < list.Count; i++)
        {
         string fromSQL = string.Format("从表新增语句");
         MySqlCommand cmd2 = new MySqlCommand(fromSQL , myCon);
         bool success2 = cmd2.ExecuteNonQuery() > 0;
         if (!success2)
         {
            //回滚事务
            transaction.Rollback();
            return false;
         }
        }
        //全部新增完成,提交事务
        transaction.Commit();
        return true;
     }
     else
     {
     //主表新增失败,无需回滚
     }
   }
   catch (Exception ex)
   {
     transaction.Rollback();
     return false;
   }
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值