我有这样的LINQ查询:如何知道我的LINQ查询返回null
,当我尝试这样做: listView.ItemsSource =更改为MyQuery
有时抛出一个异常,因为有在myQuery
我尝试过很多办法一样,没有元素:if(myQuery.count!=0)
或if(myQuery.Any())
但是毫无效果,所以我怎么能确定我的查询返回NULL?
我有这样的LINQ查询:如何知道我的LINQ查询返回null
,当我尝试这样做: listView.ItemsSource =更改为MyQuery
有时抛出一个异常,因为有在myQuery
我尝试过很多办法一样,没有元素:if(myQuery.count!=0)
或if(myQuery.Any())
但是毫无效果,所以我怎么能确定我的查询返回NULL?
可以实现的结果以列表:
var myQuery = (from Q in myDataContext select Q.Name).ToList();
现在,您可以检查的项目数:
if (myQuery.Count > 0) ...
您也可以使用Count()
方法对原始查询,但随后你会运行查询两次,一次计算项目,一次使用它们。
这里是我的确切代码 – Mouayad 2010-11-09 10:30:35
VAR myAppointmentsQuery =从对myApp在DC.Appointments 其中(myApp.Appointment_Date == datePicker_showAppointmentDate.SelectedDate && myApp.Doctor.Name == comboBox_showAppointmentsDoctor.SelectedItem.ToString()) 选择新{myApp.Patient .Name,myApp.Appointment_Time}; (myAppointmentsQuery.Count()!= 0) listView_appointmentsList.ItemsSource = myAppointmentsQuery; } – Mouayad 2010-11-09 10:31:08
@Mouayad:这应该是工作。但是,您应该从UI字段获取输入并在查询中使用它们之前进行验证。输入无效是代码有时会失败的最可能原因。 – Guffa 2010-11-09 11:33:33
LINQ查询不应该返回null,如果结果为空,则不应该得到异常。您的代码中可能有错误。
看起来您发布的代码缺少表名。你确定你发布的代码是给你带来问题的代码吗?
我认为他描述的结果是0记录 后来调用ToList
@eranotzer:为什么要调用ToList引发异常?我相当肯定它只会返回一个带有零元素的列表。 – 2012-01-26 08:35:28
我需要再次检查, ,但我记得在0结果中调用泛型ToList
你可以试试这个
var myQuery = from Q in myDataContext
if(myQuery != null)
{
// TO SOME THING HERE
}
或U可以额外检查一样,如果有列表结果
var myQuery = from Q in myDataContext
if(myQuery != null && myQuery.Count > 0 )
{
// TO SOME THING HERE
}
要么你可以将其转换为列表,然后检查计数
var result = (from Q in myDataContext select Q.Name).ToList();
if(result.Count > 0)
{
// Perform some operation
}
或者您可以执行空检查,因为默认情况下,linq查询返回null而不是空列表。
var result = (from Q in myDataContext select Q.Name);
if(result != null)
{
// Perform some operation
}
最好的办法是检查有没有为空(无项目)列表中使用任何()而不是COUNT()
VAR更改为MyQuery =(自Q在myDataContext选择Q.Name).ToList( ); 现在,您可以检查的项目数:
如果(myQuery.Any())...
你说的意思是“毫无效果”?你得到了什么错误?你能发布你试过的代码吗? – 2010-11-09 10:15:54
@Guffa说对了,你错过了一个表名。 – PrateekSaluja 2010-11-09 10:18:17