请大家帮忙困扰我2天了,KeyNotFoundException: 给定关键字不在字典中。

我这个是WebService读取服务器上的mySql数据库,增删改都没问题,唯独读取数据就不行,代码到Fill方法时就报这个异常:KeyNotFoundException: 给定关键字不在字典中。
以下是代码:
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();
adapter.Fill(ds,"dt");
sql数据,表字段没有关键字段,
图片说明

贡献一个答案:这个问题是因为MySql.Data.dll的版本过低造成的,我升级到了6.3.6后一切正常

检查表名、字段、sql是否匹配。

参考DataAdapter.Fill 方法 (DataSet)

Fill 操作将行添加到 DataSet 中的目标 DataTable 对象,如果 DataTable 对象不存在,则创建这些对象。 当创建 DataTable 对象时,Fill 操作通常只创建列名元数据。 但是,如果 MissingSchemaAction 属性设置为 AddWithKey,则还会创建适当的主键和约束。
如果 SelectCommand 返回 OUTER JOIN 的结果,则 DataAdapter 不为生成的 DataTable 设置 PrimaryKey 值。 必须显式定义主键,确保正确地解析重复行。 有关详细信息,请参阅 定义主键。

你的SELECT的语句是什么样的,有没有包含主键ID字段或者有没有Join?

问题解决了吗?
如何