0

这个问题快把我逼疯了。

我正在尝试使用 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,所以我不知道问题出在哪里。

谢谢你的任何建议。

4

1 回答 1

0

我知道这是不久前发布的,但我刚刚找到了解决问题的方法:

似乎问题出在表结构或类似的东西上。我在表上做了一个 mysqldump,然后只导入了转储(它基本上是从头开始构建表)。在我这样做之后,一切都像魅力一样。

希望我可以帮助遇到这个奇怪问题的其他人。

于 2014-10-14T14:44:24.593 回答