c# - MySqlHelper 类中的事务锁

标签 c# mysql .net c#-4.0

我将在我的.net代码中调用mysql Db,为此我将使用MySql.Data.dll。在我的场景中,我使用了 MySqlHelper 类。但在这种情况下,有两个插入语句,如果两者都正确插入,我想提交记录。否则我想回滚它。

    internal bool AddCutomer(Customer c)
        {
            string sqlCustomerQuery = "INSERT INTO tab_customer VALUES('" + c.Barcode + "','" + c.custxml + "')";
            int result = MySqlHelper.ExecuteNonQuery(connectionString, sqlCustomerQuery);
            if (result > 0)
            {
                string sqlProjCustomer = "INSERT INTO tab_project_customers VALUES('" + c.Barcode + "','" + c.ProjectID + "')";
                MySqlHelper.ExecuteNonQuery(connectionString, sqlProjCustomer);

                return true;
            }
            else
            return false;

        }

我的问题:

  1. 在这种情况下我该如何提交或回滚?
  2. 我发现MySqlTransaction可用于提交和回滚。如果我要使用这个,我该如何使用它?或者还有其他方法吗?
  3. 什么时候可以使用MySqlHelper类以及传统方法(创建连接、命令等)和MySqlHelper类方法之间的区别?
  4. MySqlHelper 帮助程序会自动处理锁吗?

最佳答案

您可以在 C# 中使用事务范围。

Roll back in c#

关于c# - MySqlHelper 类中的事务锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15543829/

相关文章:

c# - WPF ICommand CanExecute():RaiseCanExecuteChanged()还是通过DispatchTimer自动处理?

mysql - 分区表使用所有分区用于 MySQL 中的基本 SELECT 语句

.net - 如何规范化字符串?

java - .Net 客户端与使用原始数据的 Java 服务器

c# - 完成后重新打开表格一遍又一遍地计算时间

c# - 在 WCF 中使用 ConcurrencyMode.Multiple 的优点和缺点

c# - 您如何控制运行时属性网格中的可见内容?

php - 基于 php 变量的唯一图像 url

mysql - 将组合框添加到链接到数据表的数据网格

c# - 从大型 JSON 中删除属性,c#