验证失败后DataGridView丢失数据

时间:2018-03-11 08:54:41

标签: datagridview

我有一个DataGridView绑定到Windows窗体应用程序中的Access数据库。当我创建一个新行并输入无效数据(根据Access中设置的规则验证,例如,单元格不能为空),然后移动到另一行时,数据将丢失。没有抛出错误或DataGridView行上的错误信息。

我在CellValidating和RowValidating事件上尝试了e.cancel而没有运气。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当系统抛出异常时会发生这种情况,例如“现在允许的任何列中不允许使用NULL值,复制主键等等。”

为了处理和观察这个,你需要处理DataGrid View的“DataError”事件。在那里你可以使用e.Cancel = True,它将在用户正在使用的数据行上显示“错误图标”。

Private Sub ctlBrokingIntBrokerageList_DataError(DataGridView As DataGridView, e As DataGridViewDataErrorEventArgs) Handles Me.DataError

           If TypeOf (e.Exception) Is FormatException Then
                e.Cancel = True

                If dgvMain.CurrentRow IsNot Nothing Then
                    dgvMain.CurrentRow.ErrorText = e.Message
                End If
            End if 
End sub