尝试从表中获取简单计数会导致异常波纹管。尝试了不同的选择语句,这也有例外:“ SELECT * FROM goods”,但是“ SELECT col1, col2 FROM goods” - 无一例外。我究竟做错了什么?从工作台这些选择作品。
字典中不存在给定的键。System.Collections.Generic.KeyNotFoundException:字典中不存在给定的键。在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) 在 MySql.Data.MySqlClient.MySqlField.SetFieldEncoding() 在 MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field)
在 MySql.Data.MySqlClient.NativeDriver .GetColumnsData(MySqlField[] 列) 在 MySql.Data.MySqlClient.Driver.GetColumns(Int32 count)
在 MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols) 在 MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols) 在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 在 MySql.Data.MySqlClient.MySqlDataReader.NextResult() 在 MySql.Data.MySqlClient.MySqlDataReader.Close() 在 MySql.Data.MySqlClient.MySqlCommand.ResetReader() 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior)行为)在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
在 MySqlSybaseComparer.DbTester.Test(String& error) in c:\MySqlSybaseComparer\DbTester.cs:line 68
代码片段:
using (MySqlConnection conn = new MySqlConnection(ConStrMySql))
{
try
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand("SELECT count(*) FROM goods", conn))
{
using (MySqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
MessageBox.Show(reader[0].ToString());
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + Environment.NewLine + ex.ToString(););
}
conn.Close();
}
Run Code Online (Sandbox Code Playgroud)
到数据库的连接字符串: Server=localhost; Database=art; Uid=ramunas; Pwd=xxxx; AllowUserVariables=True;
我已经解决了您同样的错误,只需将字符集添加到连接字符串中即可:
Server=myServer;Port=3306;Database=myDB15;User ID=usr33;Password=usr33P;CharSet=utf8;
Run Code Online (Sandbox Code Playgroud)
就我而言,我将 MySql 连接器用于 .Net 6.9.3 版。连接到 30 个具有相同结构、相同排序规则 ( utf8_unicode_ci ) 和不同表内容的相同数据库。
当我运行MySqlCommand.ExecuteReader()方法从用户表中选择内容时,在某些数据库(30 个中的 4 个)中出现相同的错误The given key is not present in the dictionary。
小智 6
在花了 5 个小时研究如何修复它之后!!!...我终于想通了...您所需要做的就是确保您的“MySql.Data.dll”是最新的!你可以在某个地方下载它。或者你可以在这里找到它 C:\Program Files (x86)\MySQL\MySQL Installer for Windows\MySql.Data.dll .. :D
| 归档时间: |
|
| 查看次数: |
15264 次 |
| 最近记录: |