如何比较DBnull表达式

时间:2013-09-10 19:18:54

标签: .net vb.net

我有以下代码:

dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")

具有DBnull的价值。

现在我想比较一下:

if dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")=nothing

...

...

我得到了

Run-time exception thrown : System.InvalidCastException - Operator is not valid for type 'DBNull' and 'Nothing'.

想法如何比较此值以查看它是否包含DBnull

if dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")=system.DBnull也会返回错误。

5 个答案:

答案 0 :(得分:4)

您可以使用IsDBNull()功能

If IsDbNull(dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")) Then ...

或与DBNull.Value

进行比较
If dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt") Is DBNull.Value Then ...

答案 1 :(得分:2)

另一种选择是使用Convert.DBNull(与DBNull.Value相同):

If dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt") Is Convert.DBNull Then
  ' value is null
End If

我更喜欢这种语法,因为它与Is Nothing比较非常相似。

答案 2 :(得分:1)

使用IsDBNull功能:

  

返回一个Boolean值,指示表达式是否计算为System.DBNull类。

If IsDBNull(dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")) Then
    ' value is null
End If

答案 3 :(得分:1)

DBNull.Value提供了一种进行比较的方法。所以你可以写:

if dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")=DBNull.Value

答案 4 :(得分:0)

试试这个:

`If IsDbNull() Then
 End If
`