@sisharpacc
Всем спасибо за помощь!

Oracle в C#: как узнать количество выбранных строк?

Сначала делаю так:
OracleCommand command = ...;
OracleDataReader reader = command.ExecuteReader();

Visual Studio подсказала FetchSize:
long rowsCount = reader.FetchSize;
Проблема в том, что FetchSize возвращает значение на порядок больше чем реальное количество извлеченных строк. Странно что на MSDN нету такого поля в описании класса msdn.microsoft.com/ru-ru/library/vstudio/system.da...
  • Вопрос задан
  • 3123 просмотра
Решения вопроса 1
@Sumor
ExecuteReader(), возвращающий OracleDataReader, предназначен для последовательного чтения результатов запроса. В процессе работы он не знает сколько ещё данных будет. Более того, данные в Reader могут начать поступать, когда ещё не закончено выполнение запроса на сервере.
Чтобы получить количество строк нужно либо в цикле прочитать все записи из OracleDataReader. Либо сформировать запрос типа: "Select count(*) from " + command.CommandText. И для него вызвать command.ExecuteScalar(). В результате вы получите количество строк без их передачи на клиент.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы