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;
   }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBHelper是一个常见的C#类,用于简化与数据库交互的操作。它通常包含一组静态方法或实例方法,用于执行SQL查询、插入、更新和删除等操作。 在C#中,使用ADO.NET来访问数据库。DBHelper类封装了底层与数据库交互的逻辑,简化了代码的编写和维护。 以下是一个示例的DBHelper类的代码: ```csharp using System; using System.Data.SqlClient; public class DBHelper { private string connectionString; public DBHelper(string connectionString) { this.connectionString = connectionString; } public void ExecuteNonQuery(string query) { using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(query, connection)) { connection.Open(); command.ExecuteNonQuery(); } } } public object ExecuteScalar(string query) { using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(query, connection)) { connection.Open(); return command.ExecuteScalar(); } } } // 其他操作方法... } ``` 这个示例中的DBHelper类有两个常用的方法:ExecuteNonQuery和ExecuteScalar。ExecuteNonQuery用于执行没有返回结果集的SQL查询,例如插入、更新和删除操作。ExecuteScalar用于执行返回单个值的查询,例如获取记录数或计算某个字段的总和。 你可以根据自己的需求扩展DBHelper类,并添加其他的数据库操作方法。这样,你可以在项目中使用DBHelper类来简化与数据库的交互操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值