更新:尝试使用相同的表,某些值等新DGV后,一切都很好......不知道为什么......
我有一个绑定到表的Datagridview(DGV)(DB中的表有几列[整数数据类型])
输入整数时输入:每一个都好 当没有输入整数时:发生dataerror并且我处理它但是当我想删除现有的整数或将值保留为空时,数据错误也会出现。说""不是一个整数(好吧,我知道),但我怎么能处理这种情况,告诉他对待一个""作为dbnull.value还是删除现有值?
谢谢
CellValidating-事件:
Private Sub dgvBunker_4N_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles dgvBunker_4N.CellValidating
If sender.Rows(e.RowIndex).IsNewRow Then Return
If e.FormattedValue Is DBNull.Value Then Return
If e.FormattedValue = String.Empty Then Return
Select Case e.ColumnIndex
Case 2 To 4
If Not IsNumeric(e.FormattedValue) Then
e.Cancel = True
sender.Rows(e.RowIndex).ErrorText = "Not a valid Number"
End If
End Select
End Sub
答案 0 :(得分:2)
您可以尝试以下代码。如果value不是整数,则验证如果值为空或为空,则e.cancel = false
Private Sub dgvBunker_4N_CellValidating(ByVal sender As Object,
ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs)
Handles dgvBunker_4N.CellValidating
If sender.Rows(e.RowIndex).IsNewRow Then Return
If e.FormattedValue Is DBNull.Value Then Return
If e.FormattedValue = String.Empty Then Return
Select Case e.ColumnIndex
Case 2 To 4
If Not IsNumeric(e.FormattedValue) Then
If e.FormattedValue = "" Or IsDBNull(e.FormattedValue) Then
e.Cancel = False
Else
e.Cancel = True
sender.Rows(e.RowIndex).ErrorText = "Not a valid Number"
End If
End If
End Select
End Sub