the given key was not present in the dictionary
"the given key was not present in the dictionary"这个错误经常出现在C#连接mysql上。
这个错误,我是在C14呼气检测仪设备软件上配置mysql连接,测试连接成功,在获取用户信息时出现的,即是在select查询语句时出现的。
通过搜索发现这个问题跟字符集(character)和字符集排序(collation)有关。
跟字符集有关,连接时指定客户端字符集就行。
跟字符集排序有关,我的处理办法是,把所有字段的字符集从utf8m4改为utf8,字符集排序从utf8mb4_general_ci改为utf8_bin
字符集(Character set)和字符集排序(collate)
字符集(Character set)
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进