我有一个程序将数据加载到 DataGridView 中,用户可以在其中编辑/添加/删除数据。当他们关闭表单时,如果有任何更改,它会询问用户是否要将更改保存到数据库中。
所以我有一个 DataTable,我加载并分配给 DataGridView 的 DataSource。然后我可以对表中的数据进行更改,如果我调用 DataSet.Update 方法,它就会更新。
但是,如果我调用 DataTable.GetChanges 方法并查看更改,我什么也得不到,除非我在 DataGridView 的当前行中有标签/单击/任何内容(在这种情况下 .GetChanges 有效)这让我相信除非行失去焦点,否则更改不会提交到 DataTable。
那么,有没有一种方法可以检查 DataGridView 中是否有任何单元格发生了更改,或者有一种方法可以在不关闭行的情况下提交这些更改?
同样,如果我不更改 GridView 中的行,这会让我失败,但否则会起作用。我希望它在这两种情况下都有效。
Dim changedRows As New DataTable()
changedRows = dtInfo.GetChanges(DataRowState.Modified Or DataRowState.Added Or DataRowState.Deleted)
If Not changedRows Is Nothing Then
....
End If