2

我确信这是一个基本无知的情况,但我正在尝试使用 Lightswitch 项目中的代码测试数据库值。

我正在检查 varchar(MAX) 值是否为空

if (Order.OrderNotes.Equals(null))
{
     do.something...
}

但是,如果值为 null,我会得到 NullReferenceException。如果有一个值,我不会收到任何错误。我试过使用 .contains(null), .Length = 0, .ToString() = "" 等但没有运气。似乎整数和日期使用 Equals(null) 可以正常工作,但对于字符串来说似乎不是。

帮助!!

4

3 回答 3

3

假设您从Order != null@DeeMac 指出的详细信息屏幕中调用它。您可以检查Order没有null使用以下相同的代码:

if (Order.OrderNotes == null) 
{
    // do.something...
}
于 2012-09-18T13:33:44.040 回答
3

如果 OrderNotes 为 null,则不能使用该实例调用任何方法、属性或任何内容

你应该打电话

if (Order.OrderNotes == null) 

当然我假设 var Order 本身不是空的,如果你想绝对确定你可以用这种方式改变你的测试

if (Order != null && Order.OrderNotes == null) 
于 2012-09-18T13:34:47.563 回答
1

在 LightSwitch 中,要测试可空属性是否有值,您可以使用HasValue,因此:

“如果 Order.OrderNotes.HasValue”

如果您想要该值(如果有的话),或者属性类型的默认值,您可以使用GetValueOrDefault

“var 值 = Order.OrderNotes.GetValueOrDefault”

我完全同意 Steve 的观点,即在尝试从对象的任何属性中获取值之前,您应该对对象(例如 Order)进行空值检查。

于 2012-09-19T00:39:24.090 回答