为什么CBool​​(Command.Parameters(“ param”)。Value.IsNull)标记为后期绑定?

时间:2019-05-21 13:00:08

标签: vb.net odp.net

我正在尝试测试是否为null的OracleParameter(输出)。有一个参数属性.Value.IsNull,但是我似乎无法使用以下内容进行测试,因为它标记为Option Strict On项目属性的后期绑定。

If CBool(Command.Parameters("param").Value.IsNull) Then

该属性无论如何都是布尔型,因此它应该可以正常工作,但是即使我这样做CBool​​()也不能处理转换吗?

编辑

.Value对象具有.IsNull属性: .Value properties

1 个答案:

答案 0 :(得分:0)

<!DOCTYPE html> <html lang='en'> <head> <title>Test Page</title> </head> <body> <table> <thead> <tr> <th>Name</th> <th>Link</th> </tr> </thead> <tbody> <tr> <td>A</td> <td><a href="#"><span class="alignleft">Some Text Align Left</span><span class="alignright">Some Text Align Right</span></a></td> </tr> <tr> <td>B</td> <td><a href="#"><span class="alignleft">A</span><span class="alignright">B</span></a></td> </tr> <tr> <td>C</td> <td> <a href="#"> <span class="alignleft">A</span> <span class="alignright">C</span> </a> </td> </tr> </tbody> </table> </body> </html>检索值的正确方法是将值分配给相应的Oracle结构。因为OracleParameter不包含.NET类型,而是包含Oracle类型。例如,如果您期望数值类型的参数-使用OracleParameter.Value

  

OracleDecimal结构表示数据库中的Oracle NUMBER或任何 Oracle数值。

OracleDecimal

您看到的Dim od As OracleDecimal = CType(Command.Parameters("param").Value, OracleDecimal) Dim isNull As Boolean = od.IsNull 属于.Value.IsNull或其他ODP类型,如下所示。当您浏览到对象时。但是对于编译器OracleDecimalValue,并且对象没有定义Object。因此-后期绑定。参见https://docs.oracle.com/cd/B28359_01/win.111/b28375/OracleDecimalStructure.htm#i1005704

IsNullOracleString的相同/相似之处