【发布时间】:2017-10-31 23:16:42
【问题描述】:
我有一个 SqlString 类型的属性,它当前返回 Null。
_oData.Customer.Name
以下是我尝试过但没有奏效的以下检查。
IsNothing(_oData.Customer.Name)
_oData.Customer.Name.IsNull
_oData.Customer.Name.Value IsNot Nothing
_oData.Customer.Name = Nothing
每一个都会导致以下错误。如何真正检查值为 Null 的值。
数据为空。不能对 Null 值调用此方法或属性。
_oData.Customer 具有其他属性的值。
编辑
添加具有 name 属性的类。这是它在Customer 类中的定义方式
Private mName As SqlTypes.SqlString
Public Property Name() As SqlTypes.SqlString
Get
Return mName
End Get
Set(ByVal value As SqlTypes.SqlString)
mName = value
End Set
End Property
EDIT-2
好的似乎是处理三元操作方式的问题
这行得通
If _oData.Customer.Name.IsNull Then
CName = ""
Else
CName = _oData.Customer.Name
End If
这不是
CName = IIf(_oData.Customer.Name.IsNull, "", _oData.Customer.Name.Value)
谁能告诉我为什么这在使用三元运算时不起作用?
【问题讨论】:
-
SqlString是什么意思没有这样的 NET 数据类型。如果您的意思是DbType.String,那么它只是一个字符串。不知道你在问什么,但String.IsNullOrEmpty()可能是你所追求的 -
您确定 Customer 或 _oData 不为空吗? (无)
-
@Steve:是的,这是我检查的第一件事。它上面的其他属性都有值
-
@Plutonix: 它在
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dllSystem.Data.SqlTypes命名空间下 -
令人惊讶的是
_oData.Customer.Name.IsNull的值是True,但是当我调用它时,它返回的错误与我上面的帖子相同。