【问题标题】:C# MySQL transactions not workingC# MySQL 事务不工作
【发布时间】:2015-06-30 08:19:46
【问题描述】:

我想了解事务是如何工作的,但我认为我遗漏了一些东西。 我想开始在循环中添加一些行,当i == 5 我想回滚事务时。

主要问题是它不会回滚。

MySqlConnection conn2 = new MySqlConnection("server=127.0.0.1;uid=root;pwd=;database=dbtest;");
conn2.Open();
MySqlCommand command2 = conn2.CreateCommand();
MySqlTransaction trans;
trans = conn2.BeginTransaction();
command2.Transaction = trans;

try
{ 
    for (int i = 0; i < 10; i++)
    {
        command2.CommandText = "INSERT INTO test (col1, col2, col3) VALUES ('1','1','1')";
        command2.ExecuteNonQuery();

        if (i == 5)
        {
            throw new Exception();
        }
    }
}
catch (Exception e)
{
    MessageBox.Show(e.ToString());
    trans.Rollback();
}

我尝试在不同的地方添加SET autocommit = 0trans.Commit(),但还是不行。

然后我决定尝试 MySQL 数据库:

START TRANSACTION;
INSERT INTO test (col1, col2, col3) VALUES ('1','1','1')
//also with COMMIT here
ROLLBACK;

它也不起作用。我尝试阅读各种教程,我检查了官方 MySQL 页面的事务但仍然没有进展。

【问题讨论】:

  • 如果它也不能在 MySQL 数据库上运行,那么服务器本身可能存在一些配置问题。

标签: c# mysql transactions


【解决方案1】:

也许您正在使用不支持事务的 de MyISAM 引擎。 如果是这种情况,您可以尝试将其更改为 InnoDB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-10
    • 2013-05-22
    • 2015-03-27
    • 1970-01-01
    • 2014-11-25
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多