![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 2 Всего: 44 |
Извените, но продолжаю мучать вопросами по .Net и базам.
С меня пиво Мне надо фильтровать данные в DataSet точнее их отображение в DataGrid. Решаю эту проблему не очень красиво. У odbcDataAdapter в SelectCommand ставлю where и добавляю параметра. Потом меняю значение параметров, очищаю dataset и делаю заного его Fill. Работает, но тормозит (что в общем меня не удивляет Есть идеи как решить эту проблему «кулюторно»? И не причастен ли к этому некий класс DataView, если да, то каким боком он крепится. -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Kurt |
|
||||||||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Да. Можно через DataView. Класс DataView представляет собой отображение данных некоторой таблицы (вроде, даже таблиц, но точно не помню..
Для того, чтобы наш DataGrid, отображал строки по некоторому фильтру, можно сделать так: 1) создать объект DataView; 2) настроить его; 3) назначить его в качестве DataSource нашего DataGrid'a. У DataView есколько конструкторов, но лично мне проще использовать такой:
Чтобы заствить все это дело фильтровать, надо заполнить св-во RowFilter. Например, так:
Также, можно сделать так, чтобы столбцы были отсортированны. Для этого используется св-во Sort. For example:
В принципе, все. Меняем вышеописанные св-ва - получаем новое представление таблицы. Итого:
Можно еще использовать DataSet.Select(..); но он возвращает массив строк, его сложнее использовать вместе с DataGrid. Ну, теперь точно все. З.Ы.
Кошмар. Это ты каждый раз делаешь запрос к базе.. З.Ы.Ы. Тебе это надо?.. Тады где мое пиво? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||||||||
|
|||||||||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 2 Всего: 44 |
Хоть в какой город пиво везти? Так, если без флайма. В чем принципиальное отличае между DataSet и DataView? Когда, что вюбирать? DataView - позваляет брать данные только для чтения? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Kurt |
|
||||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Хм.. Можно, конечно, пофилософствовать на эту тему, но честно признаюсь - просто не задумывался как-то. имхо, DataView просто обертка вокруг DataSet'a. DataSet содержит локальную копию твоей БД, отслеживает изменения etc, а DataView служит для отображения этих данных. Поэтому, если необходимо изменять вид представления данных пользователю (что часто бывает..), то нужно использовать DataView, иначе - можно DataSet напрямую. Но это, повторюсь, IMHO.
Нет. Если поиграться со св-вами AllowNew, AllowEdit, AllowDelete - появляется возможность проведения операций по добавлению/удалению/редактированию черезе DataView. [offtop]
Краснодар. Говорят, южная столица Росии. [/offtop] -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||||
|
|||||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 2 Всего: 44 |
Ну все еду в Краснодар
Спасибо, за квалифицированные ответы , но вопросы еще будут. В особокрупном количестве, если никто не против -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |