Признак окончания набора записей

HoTicE
Дата: 25.07.2005 10:40:53
В asp чтение из базы данных в цикле осуществляется вот так (один из вариантов):

rs - рекордсет

do while not rs.EOF
...делаем что там надо...
rs.MoveNext
loop

в .NET c#
while (Rd1.Read()) {
...делаем что там надо...
}
if (!Rd1.IsClosed){Rd1.Close();}

Вопрос: есть ли в Net такой признак наподобие EOF?
что бы получилось так
while (!Rd1.EOF) {
...делаем что там надо...
Rd1.Read()
...делаем что то еще...
}
if (!Rd1.IsClosed){Rd1.Close();}

Если непонятно что я спросил - скажите - попробую перефразировать.
Dats
Дата: 25.07.2005 11:06:58
Старый подход.
Ты используешь DataReader. А этот помпонент читает только 1 раз и только в одном направлении. Зачем тебе EOF. Для него в этой схеме места нет.
dma_caviar
Дата: 25.07.2005 12:33:00
dr = SelectCommand.ExecuteReader(CommandBehavior.CloseConnection Or CommandBehavior.SequentialAccess Or CommandBehavior.KeyInfo)

While dr.Read

однонаправленный перебор записей

End While

Только коннект не забудь сначала открыть а потом закрыть
Sa
Дата: 25.07.2005 13:35:31

dma_caviar

dr = SelectCommand.ExecuteReader(CommandBehavior.CloseConnection Or
....
Только коннект не забудь сначала открыть а потом закрыть

Позволю себе уточнить ... при CommandBehavior.CloseConnection соединение закрывается не явно при вызове DataReader.Close, что несомненно удобно.

uid = Sa

Posted via ActualForum NNTP Server 1.2

HoTicE
Дата: 26.07.2005 15:46:51
Я имел ввиду, что в случае asp я могу крутиться в цикле wihile not eof сколько хочу - т.е. это могут быть даже холостые циклы, или например отрисовка чегонибудь и т.д. и т.п., и когда я захочу - то сделаю moveNext.
А .Net получается что я могу сделать итеррацию цикла только прочитав текущую запись, а затем курсор сам автоматом перейдет на следующую запись. С одной стороны хорошо, забот меньше - но с другой как то ограничено получается контролировать процесс чтения данных из БД :(
Ingener
Дата: 26.07.2005 17:02:57
автор
...но с другой как то ограничено получается контролировать процесс чтения данных из БД :(

Читаем селектами в DataTable, а в нем хоть обкрутитесь и законтроллируйтесь