我有一个存储过程,其中包含一些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"
?这似乎与通常转换为""
的其他所有内容不一致。
此外,主要问题是为什么IsDBNull
和Isnothing
都不返回true?