MySql Query / C#上的KeyNotFoundException

时间:2014-06-30 12:28:16

标签: c# mysql

我正在使用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"));
        }

2 个答案:

答案 0 :(得分:1)

当我将列Collat​​ion从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