我试图在单元格值更改事件DataGridView
中检查DBNull
值。
这是我的代码,
Private Sub DataGridView1_CellValueChanged(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
Try
If IsDBNull(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value()) Or _
Val(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) < 0 Then
Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
在我的代码中,我试图检查该单元格是否为空或小于 0,然后将其替换为 0。但这似乎不起作用,并抛出了一个异常Argument 'Expression' cannot be converted to type 'DBNull'
。任何帮助将不胜感激。
试试这个...
If IsDBNull(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value()) Then
Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0
Else
If Val(Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) < 0 Then
Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0
End If
End If