当我更改DataGridView中的值时,为什么我的数据库表没有更新?

时间:2015-07-17 03:19:59

标签: database vb.net datagridview dataset

我在表单上放了一个名为DataGridView2 DataGridView 。 我将dataSource属性分配给我的 DataSet 中的一个表,称为“帐户”。 我为dataGridView设置了默认设置,允许用户修改它。我为用户添加了一个 Save 按钮,用于将更改的值从网格保存到数据库。但它不起作用。

我在保存按钮中使用的代码是:

Me.Validate()
Me.DataGridView2.Update()
Me.MyDBTableDataset.AcceptChanges()

当我在第二行调试它时,其中有适当的值:

DataGridView2.Rows(0).Cells(2).Value 

是网格中用户修改的值。但是当它执行AcceptChanges并完成时,不会对我的数据库应用任何更改。

如果有人可以提供帮助,那会很棒。 感谢

1 个答案:

答案 0 :(得分:1)

AcceptChanges没有按照您的想法行事。它没有保存任何东西。它实际上会重置DataSet,因此它不包含任何保存更改。你也可以摆脱对网格Update方法的调用,因为它没用。它只是在屏幕上重绘网格。

您实际需要做的是在最初调用Update的同一数据适配器或表适配器上调用Fill,以便首先检索数据。 Fill方法执行SelectCommand检索数据,Update方法根据需要执行InsertCommandUpdateCommandDeleteCommand以保存更改到数据库。

Update方法将隐式调用AcceptChanges以指示已保存更改。您很少需要明确地致电AcceptChanges