我正在使用C#开发软件,我必须在这个程序上使用MySQL连接。我可以连接到数据库。 Visual Studio在ExecuteReader()
行上抛出异常。
Exception: KeyNotFoundException , "The given key was not present in the dictionary"
这是我的代码:
MySqlConnectionStringBuilder bag = new MySqlConnectionStringBuilder();
bag.Server = "localhost";
bag.UserID = "root";
bag.Password = "123456";
bag.Database = "randevu_takip";
MySqlConnection baglan = new MySqlConnection();
baglan.ConnectionString = bag.ToString();
baglan.Open();
MySqlCommand komut = new MySqlCommand();
komut.Connection = baglan;
komut.CommandType = CommandType.Text;
komut.CommandText = "SELECT * FROM kullanicilar;";
MySqlDataReader oku = komut.ExecuteReader();
while (oku.Read())
{
MessageBox.Show(oku.GetString("sifre"));
}
答案 0 :(得分:1)
当我将列Collation从utf8mb4_unicode_520_ci更改为utf8_general_ci时,问题就解决了。
尝试为连接和表定义相同的字符集。
var connection = new MySqlConnection("Server=localhost; Port=3307; uid=your_name; Pwd=your_password; Database=your_database; charset=utf8;");
要更改可以使用的表的排序规则,
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8
答案 1 :(得分:0)
停止 MySql Server
在mysql配置文件中添加/编辑下面的配置,即my.ini文件 位于
<块引用>C:\ProgramData\MySql\MySql Server [版本]
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
启动 MySql Server