MySql.Data.MySqlClient.Replication.ReplicationManager抛出System.TypeInitializationException

时间:2016-12-09 09:37:22

标签: c# mysql mono

我的代码访问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后,一切正常。

3 个答案:

答案 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 软件包解决了我的问题。