我需要的东西,如:如果语法的DBNull和价值
if isdbnull(value) or value = something then
'do something
else
'do something else
end if
当然
我用这个方法得到一个错误,所以我的问题是怎么做的我把它改写,以避免没有定义”运营商dbnull和一些“错误?
我需要的东西,如:如果语法的DBNull和价值
if isdbnull(value) or value = something then
'do something
else
'do something else
end if
当然
我用这个方法得到一个错误,所以我的问题是怎么做的我把它改写,以避免没有定义”运营商dbnull和一些“错误?
有几个方法可供选择,并且您使用可能取决于你正在使用的值。但是,如果你想要的东西,抓住所有的条件,那么我这样做:
If Value Is Nothing OrElse IsDbNull(value) Then
'do something
Else
'do something else
End If
这将检查如果该值是什么,有时会发生没有实际是DBNull的价值。
但是最重要的部分是OrElse。 OrElse是短路运算符,只要运行时知道结果会是什么,它就会终止对条件的评估。相比之下,Or运算符将执行整个条件,无论如何,这就是您的原始代码失败的原因。
编辑:
现在,我在你的示例代码再看看,我可以看到我的NOTNULL()函数可以帮助你:
Public Shared Function NotNull(Of T)(ByVal Value As T, ByVal DefaultValue As T) As T
If Value Is Nothing OrElse IsDBNull(Value) Then
Return DefaultValue
Else
Return Value
End If
End Function
用法:
if NotNull(value, something) = something then
'do something
else
'do something else
end if
我很确定这正是问题所要求的,但关键在于“OrElse”部分。 – Jimmy
这就是它! OrElse做到了,非常感谢! – Iulian
当然,没问题。实际上,现在我再次查看您的原始代码,我可以看到我的NotNull函数如何帮助您。 –