Exception 如果值为dbnull.value,则vb.net中的String.IsNullOrWhiteSpace将抛出错误

Exception 如果值为dbnull.value,则vb.net中的String.IsNullOrWhiteSpace将抛出错误,exception,vb.net-2010,dbnull,Exception,Vb.net 2010,Dbnull,String.IsNullOrWhiteSpace(valuefromDB)如果valuefromDB是dbnull.value 对吗 我想这个函数也会处理dbnull。value不等于null 尝试以下方法: If Not DbNull.Value.Equals(valuefromDB)... 是的,没错 从msdn: 指示指定的字符串是无、空还是仅由空白字符组成 Nothing不为null,因此字符串可以为Nothing或空,但dbnull是它的另一个不同值:)。如果对代码使用Option

String.IsNullOrWhiteSpace(valuefromDB)
如果
valuefromDB
dbnull.value

对吗

我想这个函数也会处理
dbnull。value

不等于null

尝试以下方法:

If Not DbNull.Value.Equals(valuefromDB)...
是的,没错

从msdn:

指示指定的字符串是无、空还是仅由空白字符组成


Nothing不为null,因此字符串可以为Nothing或空,但dbnull是它的另一个不同值:)。

如果对代码使用Option Strict,则永远不会编译,因为字符串上的
IsNullOrWhiteSpace
方法接受
字符串类型,
dbnull
不是字符串类型(它是dbnull),猜测一下,您的
valuefromDB
变量的类型是
Object

名称
IsNullOrWhiteSpace
中的IsNull实际上是指CLR
null
,在VB中它是
Nothing
,而不是
DBNull

您可以同时检查
DBNull
IsNullOrWhiteSpace
,或者如Emaad Ali所指出的,使用VB函数
IsNothing

希望这有帮助