作者:尛爱总_305 | 来源:互联网 | 2023-08-13 08:09
MySQL中的事务–无法回滚我正在使用MySQL5.0.27,并试图让交易工作。我按照本教程:http:dev.mysql.comdocrefman5.0esconne
MySQL中的事务 – 无法回滚
我正在使用MySQL 5.0.27,并试图让交易工作。 我按照本教程:
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqltransaction.html
仍然无法让这些工作。 我试图更新的表是InnoDB,并尝试执行’set autocommit = 0’但它似乎没有做任何事情….我写的代码如下:
public int transactionUpdate() { MySqlConnection cOnnection= new MySqlConnection(connStr); connection.Open(); MySqlCommand command = connection.CreateCommand(); MySqlTransaction trans; trans = connection.BeginTransaction(); command.COnnection= connection; command.Transaction = trans; try { command.CommandText = "SET autocommit = 0"; command.executeNonQuery(); command.CommandText = "UPDATE TBL.rec_lang rl SET rl.lang_code = 'en-us' WHERE rl.recording=123456"; command.executeNonQuery(); command.CommandText = "UPDATE TBL.rec_lang rl SET rl.lang_code = en-us WHERE rl.recording=123456"; command.executeNonQuery(); trans.Commit(); } catch(Exception ex) { try { trans.Rollback(); } catch(MySqlException mse) { log.error(mse); } } }
第二个命令失败,因为它缺少’around’en-us’。 这应该回滚第一个查询以及之前的值,但事实并非如此。 你能告诉我我做错了吗???
MySQLConnector v.6.3.6.0
MySQL v.5.0.27
C#VS2010
我有一个第二个数据库打开,有错误的数据显示> <...此方法有效。 事实证明我甚至不需要:
command.CommandText = "SET autocommit = 0"; command.executeNonQuery();
所以这段代码适用于交易。
上述就是C#学习教程:MySQL中的事务 &#8211; 无法回滚分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注&#8212;编程笔记