连接必须是有效的,并且可以将事务回滚到c#和MySql数据库
本文关键字:事务 数据库 MySql 有效 连接 | 更新日期: 2023-09-27 18:16:38
我使用c# Framework2.0开发程序,数据库是mysql。我使用事务处理,但总是出错
系统。InvalidOperationException:连接必须是有效的,并且打开回滚事务在MySql.Data.MySqlClient.MySqlTransaction.Rollback ()
下面是一些源代码:
try
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
MySqlCommand command = connection.CreateCommand();
MySqlTransaction myTrans = connection.BeginTransaction();
command.Connection = connection;
command.Transaction = myTrans;
try
{
string sql ="XXXXX";
command.CommandText =sql;
command.ExecuteNonQuery();
sql="yyyy";
command.CommandText =sql;
command.ExecuteNonQuery();
.........
myTrans.Commit();
}
catch (Exception ex)
{
myTrans.Rollback();
throw ex;
}
}
}
catch (Exception ex)
{
FileHelper.WriteLog(ex);
}
我检查样本来自:
http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqltransaction.html源代码应该没问题。
错误提示连接似乎已经关闭。我认为使用Using()应该是可以的。它会自动关闭
有人能帮我吗?
我终于找到解决办法了。
MySqlCommand。CommandTimeout默认为30秒。
可能服务器老旧,数据量大。所以超时
so show error
连接必须有效并打开回滚事务
Just Set MySqlCommand.CommandTimeout=1200
这个可以很好地工作。
很难找到根本原因。