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

    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;

        }


我的问题:


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

最佳答案

您可以在c#中使用Transaction Scope。


  Roll back in c#

08-04 07:39