我试图使用C#代码连接数据库,但是当调试器进入MySqlConnection Open方法时出现KeyNotFoundException。
我尝试将connectionString更改为另一个模板,重新启动SQL Server,并手动验证我的服务器详细信息(用户名,密码ETC ...)
//setting my connection data
private void Initialize() {
server = "127.0.0.1";
database = "database";
uid = "root";
password = "123456";
String connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "Uid=" + uid + ";" + "PWd=" + password + ";";
connection = new MySqlConnection(connectionString);
}
//Opening the connection
private bool OpenConnection() {
try {
connection.Open();//This is where I get my Exception
return true;
}
}
除了连接,我遇到了下一个异常:
System.Collections.Generic.KeyNotFoundException:字典中不存在给定的键。 在System.Collections.Generic.Dictionary`2.get_Item(TKey键)处 在MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion版本,字符串CharSetName) 在MySql.Data.MySqlClient.CharSetMap.GetEncoding(DBVersion版本,字符串CharSetName) 在MySql.Data.MySqlClient.Driver.Configure(MySqlConnection连接) 在MySql.Data.MySqlClient.MySqlConnection.Open() 在d:\ Users \ moshe \ Documents \ Visual Studio 2015 \ Projects \ sqlTesting \ sqlTesting \ DBConnect.cs:line 40中的sqlTesting.DBConnect.OpenConnection()中
答案 0 :(得分:1)
您应该尝试删除collation-server
设置下Options
标签中的General
设置,然后重新启动MySQL
服务器以解决此问题。
OR
您可以简单地将charset
添加到连接字符串:
Server=127.0.0.1;Port=3306;Database=database;User ID=root;Password=123456;CharSet=utf8;
OR
如果您的框架是.NET
,那么您要做的就是确保您的'MySql.Data.dll'与相应的版本保持最新。