【问题标题】:Is it possible to "NOT commit changes if error"?是否可以“如果出错则不提交更改”?
【发布时间】:2014-07-31 09:08:49
【问题描述】:
当我将“Long Integer”字段更改为字母时,我的 DataGridView(绑定在 MS Access 数据库中)中出现 DataError,但在显示错误后仍然提交我所做的更改 , 在单元格中输入字母。
如何使单元格的值恢复到之前的有效值,即数字?
【问题讨论】:
-
-
still commits the change 是什么意思?如果数据错误的context 包含Commit,则抛出错误,因为它可能不提交数据。
标签:
vb.net
visual-studio-2010
datagridview
ms-access-2007
【解决方案1】:
正如我在评论中所说:如果数据错误的上下文包含Commit,则抛出错误,因为它可能不提交数据。
现在,在您的数据错误处理程序中,调用网格CancelEdit。
类似这样的:
Private Sub DataGridView1_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles DataGridView1.DataError
If ((e.Context And DataGridViewDataErrorContexts.Commit) = DataGridViewDataErrorContexts.Commit) Then
e.ThrowException = False
Me.DataGridView1.CancelEdit()
Else
e.ThrowException = True
End If
End Sub