SqlCeDataReader пока (read()) выполняется на пустом наборе данных
Я использую 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 также вызывает исключение.)
Еще одна вещь - соединение, которое я использую в этом запросе, открыто и использовалось в другом SqCeCommand, отличном от того, который выполняется здесь до того, как метод придет в цикл while. Если это имеет значение...
1 ответ
Проверь это:
while (tourReader.Read()) // tourReader here
{
Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] ); // reader here
if (newTour != null)
creater.Tours.Add(newTour);
}
Являются reader
а также tourReader
тот же самый?