参数"表达式"不能转换为 vb.net 中的类型"DBNull"



我试图在单元格值更改事件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

最新更新