我有以下代码:
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
也会返回错误。
答案 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
`