SqlCeDataReader while(read())在空白数据集上执行

时间:2012-11-29 04:18:17

标签: c# sql-server-ce sqlcedatareader

我正在使用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中使用。如果那很重要......

1 个答案:

答案 0 :(得分:0)

检查:

while (tourReader.Read()) // tourReader here
{
    Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] ); // reader here
    if (newTour != null)
        creater.Tours.Add(newTour); 
}

readertourReader是否相同?