| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > количество элементов в OleDbDataReader |
| Автор: BraM's 3.11.2004, 14:06 | ||
Как узнать, сколько записей в reader? RowsAffected = 0 что вообщем-то интуитивно понятно... |
| Автор: Tomcat 3.11.2004, 14:29 | ||||
Читай MSDN
Он только читает по порядку результат запроса. И заканчивает выполнение по окончанию записей. Короче, он сам не знает, сколько он прочитает. А про RowAffected в MSDN:
Заметь про SELECT (выборки) здесь ничего не сказано! |
| Автор: BraM's 4.11.2004, 18:08 |
| Хорошо. Как тогда узнать количество зваписей в данном селекте? |
| Автор: Tomcat 5.11.2004, 10:11 | ||||
| Вот это другой вопрос... Я, однажды столкнувшись с такой бедой, так и не нашел выхода. Это касается только использования DataReader-a. Количество записей узнавал только после полного прочтения результатов запроса. Но у меня была необходимость использовать именной DataReader. Все зависит от того, что тебе именно нужно. Если тебе нужны и записи, и их количество, используй OleDbDataAdapter + DataSet или OleDbDataAdapter + DataTable. Потеряешь немного в производительности и в использовании ресурсов памяти (тут все зависит от предполагаемого количества возвращаемых записей). Вот пример:
Теперь в result.Rows будут вернувшиеся записи. Ну и соответственно в result.Rows.Count их количество. Если же тебе нужно только количество записей:
В count будет твое количество. |