0

我有一个绑定到 Acces 数据库的 DataGridView。如果我直接在 DataGridView 中进行编辑,我可以很好地更新数据库,但是如果我使用类似的东西:

dgView.Rows[0].Cells[1].Value = "Some text";

它将在第 0 行的第一个单元格中写入文本,但是当我调用时:

dAdapter.Update(dTable);

它不会更新数据库。相反,旧值被保留。如果我自己编辑了代码并通过双击单元格并输入它来编写“一些文本”,它会更新得很好。我知道这是一个问题,但实际上我不知道它是什么。

请帮忙,我真的需要完成这件事(这是学校的一个项目)。如果您需要帮助我,请问我任何其他问题。提前致谢。

瓦利

4

1 回答 1

0

这里的问题是,当您以编程方式更新 DataGridView 时,不会通知 DataGridView 的底层数据源(您的 DataTable)它已更改 - 所以只是 UI 更改,而不是您的数据源。

您可以使用DataGridView.BeginEdit方法来触发这些事件,如下所示:

dgView.BeginEdit(false);
dgView.Rows[0].Cells[1].Value = "Some text"; 
dgView.EndEdit();

与其尝试像您一样通过 DataGridView 以编程方式更新您的 DataTable,更好的方法是直接更新您的 DataTable。

于 2012-07-10T22:12:07.947 回答