2012-03-19 113 views
2

我希望在我的代码中有一个If语句,它测试是否从我的SQL查询中获得任何结果。我曾尝试在Google上寻找,但还没有找到任何有效的方法来测试。C#中返回的SQL查询返回什么都没有?

我的代码现在总是进入If块并尝试显示页面。我做错了什么?

var pendingMeetings = db.Query("SELECT * FROM table"); 
if (pendingMeetings != null) { 
    //display page 
} else { 
    <h1>No results found!</h1> 
} 
+1

我不熟悉的LINQ到SQL,但如果'(pendingMeetings.Any())'应该工作。 – 2012-03-19 13:25:28

+0

嘿西蒙,你有没有尝试通过调试来查看对象?我从来没有尝试过以你的方式去做,但我会做的是看着对象。它可能有一个实例化的对象,但它可能有零个记录?寻找一个计数属性或什么?更好的是,将它转换为ToList()并使用.Count。希望这可以帮助。 – 2012-03-19 13:27:11

回答

6

尝试

if (pendingMeetings.Any()) 
{ 
    // display page 
} 
else 
{ 
    <h1>No results found!</h1> 
} 
1

你得到一个结果,没有行(但会获得列名)。

请参阅Bala R的解答答案。

-1

试着改变你的if声明

if (pendingMeetings != null && pendingMeetings.Count() > 0) 
{ 
    //snip 
} 

db.Query返回IEnumerable<object>

+0

不要做Count()它必须读取返回的所有数据。使用Any() – 2012-03-19 14:15:47