例外'对空数据的操作无效'即使使用IsNot DBNull.Value也会出现

时间:2017-06-07 05:34:02

标签: vb.net rest soap frameworks

我面临一个奇怪的问题。我从vb.net rest服务框架4.5.2调用oracle存储过程。执行查询后,我正在读取如下参数:

        cmd.ExecuteNonQuery()

        Dim obj As MyObject= New MyObject

        With obj 

            If cmd.Parameters("Param1").Value IsNot DBNull.Value Then
                .strParam1 = cmd.Parameters("Param1").Value.Value
            Else
                .strParam1 = ""
            End If

        End With

主要问题是,当param1返回为null时,IsNot DBNull.Value不起作用,并且因为if条件达到空值而不是else而引发错误。错误是Invalid operation on null data。在SOAP项目中编写了相同的函数,其中框架是4.0并且它工作正常。唯一有效的是我更换了

If cmd.Parameters("Param1").Value IsNot DBNull.Value Then

通过

If cmd.Parameters("Param1").Value <> Nothing Then

那么为什么IsNot DBNull.Value返回true而不是false?

0 个答案:

没有答案