0

我正在使用 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 中使用,而不是在此处执行的连接。如果这很重要...

4

1 回答 1

0

核实:

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

readertourReader一样吗?

于 2012-11-29T05:14:29.707 回答