这个问题快把我逼疯了。
我正在尝试使用 MySQL dataAdapter 更新数据集。此方法适用于我数据库中的其他表,它只是发生在此表中。以下是代码示例:
String query = "select * from accounts";
DataSet dataSet = new DataSet();
connection.Open();
MySqlDataAdapter dataAdapter = new MySqlDataAdapter(query, (MySqlConnection)connection);
MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter);
dataAdapter.FillSchema(dataSet, SchemaType.Source);
commandBuilder.RefreshSchema();
dataAdapter.Fill(dataSet);
dataSet.Tables[0].Rows[0]["balance"] = 1M;
dataAdapter.Update(dataSet);
一旦它尝试更新它就会抛出异常。请记住,这是我的代码的简化示例,但它得到了相同的结果。
我已经研究了这个错误,我能找到的只是:
1)如果这个数据自填充后被另一个用户更改了
2)如果该行不存在。
但是其他用户不可能更改数据,因为这发生在我的开发机器上。并且该行显然存在,因为它不会在 Rows[0] 处引发异常。
正如我所说,这只发生在这张桌子上。该表有一个 int 作为主键,而我要更新的列是 Decimal,所以我不知道问题出在哪里。
谢谢你的任何建议。