1

我有以下代码:

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也返回错误。

4

5 回答 5

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 ...
于 2013-09-10T19:21:37.597 回答
2

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

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

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

于 2013-09-10T21:02:18.337 回答
1

使用IsDBNull功能:

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

If IsDBNull(dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")) Then
    ' value is null
End If
于 2013-09-10T19:21:57.117 回答
1

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

if dsParticippantInfo.Tables(0).Rows(0)("Contract_Amt")=DBNull.Value
于 2013-09-10T19:22:08.427 回答
0

试试这个:

`If IsDbNull() Then
 End If
`
于 2013-09-10T19:23:09.170 回答