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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView c 
:(
    Опции темы
aldari
Дата 4.8.2010, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте, 
 По книге написал приложение на C# в VS 2008 EE с использованием технологии DataBinding.
 А точнее перетащил с вкладки data sources на формочку ярлык таблицы и VStudio создала 
 объекты DataSet, DataBinding, DataGridView, DataAdapter.
 
 По мере роста числа записей в БД время запуска и количество потребляемой памяти ростет. 

 Теоретически, решение - сократить количество записей возвращаемых из БД.
 Изменил запрос метода Fill,  в результате колиство отображаемых в таблице DataGridView строк значительно 
 уменьшилось, а объем занимаемой оперативки нисколько!

 Подскажите как можно уменьшить количество используемой оперативной памяти в таком приложении?
PM MAIL   Вверх
mrbrooks
Дата 4.8.2010, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(aldari @  4.8.2010,  09:22 Найти цитируемый пост)
Изменил запрос метода Fill,  в результате колиство отображаемых в таблице DataGridView строк значительно 
 уменьшилось, а объем занимаемой оперативки нисколько!

Визуально - да. Количество строк уменьшилось. Но на самом деле все одно в DataSet загружаются все, что соответствует запросу.


Цитата(aldari @  4.8.2010,  09:22 Найти цитируемый пост)
Подскажите как можно уменьшить количество используемой оперативной памяти в таком приложении? 

гуглите на тему Paging DataGridView
PM MAIL   Вверх
Экскалупатор
Дата 4.8.2010, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



скорее всего, выборка идет всех данных из базы. то что они не отображаются ниочем не говорит. мне кажется лучше всего выбирать из базы только то что нужно, а не все подряд. тогда не будет большого расхода памяти, но придется чаще обращаться к базе.
PM MAIL ICQ   Вверх
mrbrooks
Дата 4.8.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



те же яйца - только в профиль © smile
PM MAIL   Вверх
aldari
Дата 10.9.2010, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Все верно говорите.
 Я хотел бы иметь те плюсы которые дает привязка данных (data binding ) - обновление информации, добавлнение, 
 (удаление на стороне клинта не подразумевается).
 Но при использовании Data Paging я теряю пивязку данных.
 
 Не желательно при написании клиента быть сильно привязанным к структуре реляционной БД.
 Вот здесь нашел статью на английском: http://www.15seconds.com/issue/040614.htm.
 В ней написанно как можно привязать компоненты к свойствам объектам и колекции объектов.
 Таким образом можно создавать столько объектов скольо нужно и иметь привязку.

 Если у кого есть материал по этой теме прошу поделиться, направить в какую сторону копать.
PM MAIL   Вверх
mrbrooks
Дата 10.9.2010, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(aldari @  10.9.2010,  09:52 Найти цитируемый пост)
Но при использовании Data Paging я теряю пивязку данных.

каким образом?

Цитата(aldari @  10.9.2010,  09:52 Найти цитируемый пост)
 Не желательно при написании клиента быть сильно привязанным к структуре реляционной БД.

Абстрагируйтесь через ORM


PM MAIL   Вверх
gegemon
Дата 16.9.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ds - объект DataSet; da1, da2 - объекты DataAdapter
Код

ds.EnforceConstraints = false;
da1.Fill(ds.Tables["Table1"]);
da1.Fill(ds.Tables["Table1"]);
ds.EnforceConstraints = true;


Примерно так, то есть отключить и включить EnforceConstraints. Так мы выключаем соблюдение ограничений типа PRIMARYKEY или UNIQUE, вызываем Fill и снова блюдём ограничения)) Производительность при увеличении записей должна повыситься.

ЗЫ Как раз сегодня у читал об этом у Сеппы =)
ЗЗЫ Если что не так сказал, извиняйте - с ADO.NET знаком буквально 2 дня..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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