| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > DataGridView c |
| Автор: aldari 4.8.2010, 08:22 |
| Здравствуйте, По книге написал приложение на C# в VS 2008 EE с использованием технологии DataBinding. А точнее перетащил с вкладки data sources на формочку ярлык таблицы и VStudio создала объекты DataSet, DataBinding, DataGridView, DataAdapter. По мере роста числа записей в БД время запуска и количество потребляемой памяти ростет. Теоретически, решение - сократить количество записей возвращаемых из БД. Изменил запрос метода Fill, в результате колиство отображаемых в таблице DataGridView строк значительно уменьшилось, а объем занимаемой оперативки нисколько! Подскажите как можно уменьшить количество используемой оперативной памяти в таком приложении? |
| Автор: Экскалупатор 4.8.2010, 09:51 |
| скорее всего, выборка идет всех данных из базы. то что они не отображаются ниочем не говорит. мне кажется лучше всего выбирать из базы только то что нужно, а не все подряд. тогда не будет большого расхода памяти, но придется чаще обращаться к базе. |
| Автор: mrbrooks 4.8.2010, 10:00 |
| те же яйца - только в профиль © |
| Автор: aldari 10.9.2010, 08:52 |
| Все верно говорите. Я хотел бы иметь те плюсы которые дает привязка данных (data binding ) - обновление информации, добавлнение, (удаление на стороне клинта не подразумевается). Но при использовании Data Paging я теряю пивязку данных. Не желательно при написании клиента быть сильно привязанным к структуре реляционной БД. Вот здесь нашел статью на английском: http://www.15seconds.com/issue/040614.htm. В ней написанно как можно привязать компоненты к свойствам объектам и колекции объектов. Таким образом можно создавать столько объектов скольо нужно и иметь привязку. Если у кого есть материал по этой теме прошу поделиться, направить в какую сторону копать. |
| Автор: mrbrooks 10.9.2010, 09:19 | ||
каким образом?
Абстрагируйтесь через ORM |
| Автор: gegemon 16.9.2010, 20:41 | ||
ds - объект DataSet; da1, da2 - объекты DataAdapter
Примерно так, то есть отключить и включить EnforceConstraints. Так мы выключаем соблюдение ограничений типа PRIMARYKEY или UNIQUE, вызываем Fill и снова блюдём ограничения)) Производительность при увеличении записей должна повыситься. ЗЫ Как раз сегодня у читал об этом у Сеппы =) ЗЗЫ Если что не так сказал, извиняйте - с ADO.NET знаком буквально 2 дня.. |