我的代码访问MySQL数据库时遇到问题。每当我尝试打开我的连接时,System.TypeInitializationException
都会引发MySql.Data.MySqlClient.Replication.ReplicationManager
。这是我的代码:
DataTable results = new DataTable("Results");
using (MySqlConnection connection = new MySqlConnection("SERVER=127.0.0.1;DATABASE=foo;UID=bar;PASSWORD=foobar;"))
{
using (MySqlCommand command = new MySqlCommand(queryString, connection))
{
command.Connection.Open(); //throws System.TypeInitializationException
command.ExecuteNonQuery();
using (MySqlDataReader reader = command.ExecuteReader())
results.Load(reader);
}
}
编辑:我猜MySQL驱动程序已损坏。从Windows 7升级到Windows 10后,一切正常。
答案 0 :(得分:0)
您的连接字符串格式错误。试试这个:
static string cs = @"server=localhost;user id=bar;password=foobar;database=foo;";
DataTable results = new DataTable("Results");
using (MySqlConnection connection = new MySqlConnection(cs))
{
using (MySqlCommand command = new MySqlCommand(queryString, connection))
{
command.Connection.Open(); //throws System.TypeInitializationException
command.ExecuteNonQuery();
using (MySqlDataReader reader = command.ExecuteReader())
results.Load(reader);
}
}
答案 1 :(得分:0)
我遇到了同样的问题,但是当我使用Nuget安装MySql.Data.dll时,问题就解决了 从Nuget安装MySql.Dll文件,
不是来自MySQL网站。
答案 2 :(得分:0)
就我而言,它仅在生产中引发错误。这是由于 MySql.Data 包中的错误假设。出于某种原因,它似乎要求与 编排 dll 位于同一文件夹中(它引用了另一个引用 MySql 的 dll)。我通过删除 MySql.Data 并按照 MySqlConnector 中的建议安装 here 软件包解决了我的问题。