我运行此查询如果Query返回空值,则程序崩溃。
var cust = db.Customers.FirstOrDefault(x => x.telephone == txtTel.Text);
if (cust.BlackList == 1)
{
MessageBox.Show("This customer is blacklisted, Do you wish to continue with this job?");
}
请建议我一些有效的解决方案 感谢。
答案 0 :(得分:2)
你得到一个空指针,因为如果找不到结果,FirstOrDefault返回对象的默认值(在这种情况下它是null):
var cust = db.Customers.FirstOrDefault(x => x.telephone == txtTel.Text);
if (cust != null && cust.BlackList == 1)
{
MessageBox.Show("This customer is blacklisted, Do you wish to continue with this job?");
}
答案 1 :(得分:1)
您需要检查null
,因为如果没有符合您条件的记录,那么FirstOrDefault
会返回:
if(cust != null && cust.BlackList == 1)
答案 2 :(得分:1)
如果列表中没有满足条件的元素,则FirstOrDefault将返回默认值,在这种情况下,它将为null。当您在null值上调用属性时,它自然会导致异常。
您应该检查cust是否为null,例如:
if(cust != null && cust.BlackList == 1)
当然,如果用户根据您的应用程序的逻辑不存在,您可以显示另一条消息。