无法弄清楚IsDBNull vb.net的添加位置

时间:2016-10-19 20:28:05

标签: vb.net datagridview

我一直收到这个错误:

  

其他信息:运营商' ='未定义类型' DBNull'和字符串

我已尝试将IsDBNull Check添加到代码中,但无法使其正常工作。这是我的代码,没有我加入IsDBNull:

If EquationVariable = "=" Then  
        For Each R0w In Sorter.DataGridView1.Rows 
            Dim ColumnName As String = ListBox1.SelectedItem
            Sorter.DataGridView1.CurrentCell = Sorter.DataGridView1.Item(ColumnName, R0w.index)
                If Sorter.DataGridView1.CurrentCell.Value = SearchVariable Then
                    Sorter.DataGridView1.CurrentRow.DefaultCellStyle.ForeColor = Color.Red
                Else
                End If
        Next
    Else
        MsgBox(ListBox1.SelectedItem.ToString & " Doest not = " & SearchVariable)
    End If

我正在接收错误:

If PostalSorter.DataGridView1.CurrentCell.Value = SearchVariable Then

以下是我试图解决的问题:

 If IsDBNull(PostalSorter.DataGridView1.CurrentCell.Value) Then
            Else
                If PostalSorter.DataGridView1.CurrentCell.Value = SearchVariable Then

                    PostalSorter.DataGridView1.CurrentRow.DefaultCellStyle.ForeColor = Color.Red
                Else

                End If
            End If

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

If Not IsDBNull(Sorter.DataGridView1.CurrentCell.Value) AndAlso Sorter.DataGridView1.CurrentCell.Value = SearchVariable Then
      Sorter.DataGridView1.CurrentRow.DefaultCellStyle.ForeColor = Color.Red

AndAlso运算符在此实例中很方便,因为与常规And不同,如果它遇到评估为false的条件,则它不再读取。通过创建我们的第一个条件Not isDBNull并使用AndAlso,我们确保只有在CurrentCell.Value不是DBNull的情况下才会发生导致问题的比较。