我需要的東西,如:如果語法的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函數如何幫助您。 –