论证'表达'无法转换为类型' DBNull'在vb.net中

时间:2014-11-28 08:32:51

标签: vb.net datagridview dbnull

我尝试在cellvaluechanged事件的DBNull中检查DataGridView值。

这是我的代码,

 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.但是,这似乎不起作用并抛出异常{ {1}}。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

试试这个......

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