Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySql查询上的KeyNotFoundException/C_C#_Mysql - Fatal编程技术网

C# MySql查询上的KeyNotFoundException/C

C# MySql查询上的KeyNotFoundException/C,c#,mysql,C#,Mysql,我正在C上开发一个软件,我必须在这个程序上使用MySQL连接。我可以连接到数据库。Visual Studio正在ExecuteReader行上引发异常 这是我的代码: MySqlConnectionStringBuilder bag = new MySqlConnectionStringBuilder(); bag.Server = "localhost"; bag.UserID = "root"; bag.Password = "123456";

我正在C上开发一个软件,我必须在这个程序上使用MySQL连接。我可以连接到数据库。Visual Studio正在ExecuteReader行上引发异常

这是我的代码:

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"));
        }

当我将列排序规则从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
停止MySql服务器

在mysql配置文件中添加/编辑以下配置,即my.ini文件 位于

C:\ProgramData\MySql\MySql服务器[版本]


启动MySql服务器

您确定在MySqlDataReader oku=komut.ExecuteReader;行上出现错误吗;?还是在循环中得到它?@AshReva否,错误在ExecuteReader行上。如果您尝试在查询中选择特定列而不是执行select*?我的目的此用法:komut.CommandText=select id,kadi,sifre FROM kullanicilar,其中kadi=@kadi;;科穆特参数。AddWithValue@kadi,txtKadi.Text;但VisualStudio抛出异常,我将其替换为:komut.CommandText=SELECT*FROM kullanicilar;使用komut.CommandText=从kullanicilar中选择id、kadi、sifre;结果是unchangedI有3个具有不同字符集的varchar列。即使是仅使用数字列的SELECT查询也会产生上述问题。上面的ALTER命令将所有列更改为utf8\u general\u ci。在那之后,它起了作用。
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci