在不执行ToString转换的情况下检查OracleParameter.Value是否为Null

我有一个存储过程,其中包含一些OUT参数。在.NET方面,我困惑于如何在将参数转换为.NET Double?之前检查该参数是否为null。在多个不同的项目中,我已经做了很多这样的事情,而且之前从未遇到过这个问题...

这是我尝试过的所有组合:

Command.Parameters.Add("PparStsValue",OracleDbType.Decimal).Direction = ParameterDirection.Output

PparStsValue = If(IsDBNull(Command.Parameters("PparStsValue").Value) OrElse
                  Isnothing(Command.Parameters("PparStsValue").Value) OrElse
                  Command.Parameters("PparStsValue").Value.ToString = "",Nothing,CDbl(Command.Parameters("PparStsValue").Value.ToString))

我做过的另一件事确实起作用,但是检查起来似乎很荒谬:

Command.Parameters("PparStsValue").Value.ToString = "null"

这计算为True,因此我可以识别空值...但是为什么将空值转换为字符串"null"?这似乎与通常转换为""的其他所有内容不一致。

此外,主要问题是为什么IsDBNullIsnothing都不返回true?

min_garden 回答:在不执行ToString转换的情况下检查OracleParameter.Value是否为Null

使用ODP时,您的参数不会自动返回CLR类型,而是返回oracle类型。因此,对数字for i in urls: print(re.findall(r'g/(.*?)[+?]',i)) # ['Dmitry'] # ['Irina'] # ['ParabolStudio'] 执行此操作的方法是

OracleParameter
本文链接:https://www.f2er.com/2567155.html

大家都在问