我们已经从MySQL .Net Connector 6.9.9迁移到.Net Connector 7.0.6,我们正在使用.NET 4.5.1版的连接器。我们的ASP.NET项目使用.NET 4.6.2,因此我们期望与此连接器向后兼容。相同的代码在前一个连接器(6.9.9)上运行正常,但是在使用新连接器时,以下代码会引发异常:
消息:Object reference not set to an instance of an object
:
using (MySqlConnection conn = new MySqlConnection("Server=localhost; Port=3306; Database=test; Uid=...; Pwd=..."))
{
conn.Open();
MySqlTransaction tx = conn.BeginTransaction(System.Data.IsolationLevel.RepeatableRead);
}
为什么新的MySQL .Net连接器(7.0.6)抛出此异常而前一个连接器(6.9.9)没有?我的Mysql版本是5.6。它似乎是在打开交易时尝试执行DataReader
。
抛出的异常是:
at MySql.Data.MySqlClient.MySqlCommand.AddCallStatement(String query)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at MySql.Data.MySqlClient.MySqlConnection.BeginTransaction(IsolationLevel iso)