Как заставить DataReader начать чтение снова с самого начала при условии?

Как сделать dr.Read(); начать чтение с самого начала, если условие выполнено? Что-то вроде:

sqlDataReader dr = command.ExecuteReader();
for(int i=0; dr.Read() ; i++){
if(condition ){
//let dr.Read() start reading from the beginning
}
}

3 ответов


ты не можешь.

на *DataReader классы вперед-только итераторы.

вместо этого вы можете сохранить результаты в List<T> (или DataTable)


единственный способ перезапустить его, чтобы захватить новый читатель с ExecuteReader().


вы можете сделать это, сначала закрыв datareader с помощью dr.close(); затем инициализируйте его снова.

If(condition)
{
    dr.close();
    dr=command.ExecuteReader();
}

где команда