Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> количество элементов в OleDbDataReader 
:(
    Опции темы
BraM's
Дата 3.11.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.7.2004

Репутация: нет
Всего: 1



Код

oleDbCommand1.CommandText = "select MAP_SIZE from MAP";
OleDbDataReader reader = oleDbCommand1.ExecuteReader();


Как узнать, сколько записей в reader? RowsAffected = 0 что вообщем-то интуитивно понятно... :qstn

Это сообщение отредактировал(а) BraM's - 3.11.2004, 14:06
PM MAIL ICQ   Вверх
Tomcat
Дата 3.11.2004, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Читай MSDN :rtfm :
Цитата
Provides a way of reading a forward-only stream of data rows from a data source

Он только читает по порядку результат запроса. И заканчивает выполнение по окончанию записей. Короче, он сам не знает, сколько он прочитает.
А про RowAffected в MSDN:
Цитата
Gets the number of rows changed, inserted, or deleted by execution of the SQL statement

Заметь про SELECT (выборки) здесь ничего не сказано! :rtfm
PM MAIL   Вверх
BraM's
Дата 4.11.2004, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.7.2004

Репутация: нет
Всего: 1



Хорошо. Как тогда узнать количество зваписей в данном селекте?
PM MAIL ICQ   Вверх
Tomcat
Дата 5.11.2004, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 4.4.2003
Где: Гродно, Беларусь

Репутация: 2
Всего: 2



Вот это другой вопрос... smile
Я, однажды столкнувшись с такой бедой, так и не нашел выхода. Это касается только использования DataReader-a. Количество записей узнавал только после полного прочтения результатов запроса. Но у меня была необходимость использовать именной DataReader.

Все зависит от того, что тебе именно нужно.
Если тебе нужны и записи, и их количество, используй OleDbDataAdapter + DataSet или OleDbDataAdapter + DataTable. Потеряешь немного в производительности и в использовании ресурсов памяти (тут все зависит от предполагаемого количества возвращаемых записей). Вот пример:
Код

OleDbDataAdapter adapter = new OleDblDataAdapter("select MAP_SIZE from MAP", connection);
DataTable result = new DataTable();
adapter.Fill(result);

Теперь в result.Rows будут вернувшиеся записи. Ну и соответственно в result.Rows.Count их количество.

Если же тебе нужно только количество записей:
Код

oleDbCommand1.CommandText = "select Count(MAP_SIZE) from MAP";
int count = oleDbCommand1.ExecuteScalar();

В count будет твое количество.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.