我正在使用SqlCeDataReader从查询中读取结果,并将它们添加到可能返回0行或多行的对象列表中。
我的代码:
while (tourReader.Read())
{
Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] );
if (newTour != null)
creater.Tours.Add(newTour);
}
我认为由于Select查询应该返回0行,Read()将返回false,因此永远不会输入循环。 (我知道这个测试实例的表格中有什么,这个测试的预期行为是0行。)
知道怎么解决这个问题吗? (使用.HasRows也会抛出异常。)
另一件事 - 我在此查询中使用的连接是打开的,并且在方法进入此while循环之前,在除此处执行的SqCeCommand之外的其他SqCeCommand中使用。如果那很重要......
答案 0 :(得分:0)
检查:
while (tourReader.Read()) // tourReader here
{
Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] ); // reader here
if (newTour != null)
creater.Tours.Add(newTour);
}
reader
和tourReader
是否相同?