我在表单上放了一个名为DataGridView2
的 DataGridView 。
我将dataSource
属性分配给我的 DataSet 中的一个表,称为“帐户”。
我为dataGridView设置了默认设置,允许用户修改它。我为用户添加了一个 Save 按钮,用于将更改的值从网格保存到数据库。但它不起作用。
我在保存按钮中使用的代码是:
Me.Validate()
Me.DataGridView2.Update()
Me.MyDBTableDataset.AcceptChanges()
当我在第二行调试它时,其中有适当的值:
DataGridView2.Rows(0).Cells(2).Value
是网格中用户修改的值。但是当它执行AcceptChanges
并完成时,不会对我的数据库应用任何更改。
如果有人可以提供帮助,那会很棒。 感谢
答案 0 :(得分:1)
AcceptChanges
没有按照您的想法行事。它没有保存任何东西。它实际上会重置DataSet
,因此它不包含任何保存更改。你也可以摆脱对网格Update
方法的调用,因为它没用。它只是在屏幕上重绘网格。
您实际需要做的是在最初调用Update
的同一数据适配器或表适配器上调用Fill
,以便首先检索数据。 Fill
方法执行SelectCommand
检索数据,Update
方法根据需要执行InsertCommand
,UpdateCommand
和DeleteCommand
以保存更改到数据库。
Update
方法将隐式调用AcceptChanges
以指示已保存更改。您很少需要明确地致电AcceptChanges
。