![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
вот пример программы которая считывает таблицу в массив
здесь я знаю что таблица имеет 10 строк и 5 сстолбцов но как мне задать массив когда я не буду знать колличество строк заранее Его можно както получить с помощю OleDbDataReader? ![]() ![]() ![]() -------------------- Ни цего не понимаю |
|||
|
||||
andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
В книге :
ADO.NET Сборник рецептов для пофессионалов ISBN 5-469-00239-X, стр.101 по этому поводу говорится: Проблема Требуется определить, возратил ли только что выполненный запрос хотябы одну запись. Решение Используйте свойство DataRowCollection.Count, DataReader.HasRows или метод DataReader.Read(). В коде примера создается и наполняется данными объект DataTable, после чего с помощью свойства Count объекта DataRowCollection определяется ... Вообщем выходит, что для решения проблемы необходимо либо использовать DataTable или делать цикл с DataReader.Read(). Как вариант решения проблемы, перед объявлением и заполнением Mass [] можно выполнить while (dr.Read()) {MassX++} --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
а как после этого возвратить DataReader возвратить в исходное положение(до цикла) ведь после прохождения по всем строкам он не возвращается в начало? ![]() -------------------- Ни цего не понимаю |
|||
|
||||
Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 5 Всего: 92 |
Мне кажется решить эту задачу гораздо проще, чем высчитывать строки. Сделай так (пример для .NET 1.1, в .NET 2.0 уже есть типизированные коллекции -- там ещё проще):
А вообще не понимаю, зачем тебе такие извращения? Почему бы не использовать нормальный DataSet? Это сообщение отредактировал(а) Дрон - 31.5.2006, 13:46 -------------------- Да. Именно так. |
||||
|
|||||
andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
Teran
Может следует прислушаться к Дрон ! А для перемещения в начало DataReader ничего лучшего не придумал кроме как : dr.Close(); dr = cmd.ExecuteReader(); --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
у меня DataReader работает раза в 2 быстрее а повторный вызов тоже займет некоторое процессорное время (а когда все это приплюсуеш получатся - тормоза проги) -------------------- Ни цего не понимаю |
|||
|
||||
andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
Teran
ну а как же конечно, поэтому все таки может прислушаться к Дрон и использовать ArrayList вместо массива ? --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
я так и сделал всем спасибо! ![]() -------------------- Ни цего не понимаю |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
||||
|
||||
Mascon |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.6.2006 Репутация: нет Всего: нет |
как вариант можно сделать и так
cmd = select count(*) from .... тоесть повторение запроса который наполняет dr int Row_count = (int)cmd.ExecuteScalar(); а потом выполняете запрос наполняющий dr... нет не спрашивайте я не знаю может ли в принципе измениться число строк между запросами..... если вас устроит передача работы по подсчету строк серверу базы данных. это немного лучше чем dr.Close() и тд... |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |