powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Кэширование Dataset
6 сообщений из 6, страница 1 из 1
Кэширование Dataset
    #32565466
alex97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Подскажите как реализовать использование одного и того же экз Dataset в нескольких формах одного и того же приложения (winform). Условно - сущесвуют несколько разных форм в которых comboboxы привязаны к одному и тому же dataset, в некоторых формах к datagrid и соответственно может обновляться. Очень не хочется создавать новый экз в каждой форме - форм много, соответственно памяти будет отъедаться... Нельзя ли кэшировать dataset ? Возможно ли использовать в winform приложениях System.Web.Caching.Cache?
...
Рейтинг: 0 / 0
Кэширование Dataset
    #32565496
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex97
Подскажите как реализовать использование одного и того же экз Dataset в нескольких формах одного и того же приложения (winform). Условно - сущесвуют несколько разных форм в которых comboboxы привязаны к одному и тому же dataset, в некоторых формах к datagrid и соответственно может обновляться. Очень не хочется создавать новый экз в каждой форме - форм много, соответственно памяти будет отъедаться... Нельзя ли кэшировать dataset ? Возможно ли использовать в winform приложениях System.Web.Caching.Cache?
Такого аналога в WinForms нет.

Проблем в использовании одного экземпляра DataSet на все приложение я не вижу.
см. /topic/100448

если что не понятно, думаю логично будет продолжить в этом форуме.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Кэширование Dataset
    #32565534
alex97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2sa:

Немного поясню задачу - открыли форму, создали датасет, заполнили его, поместили в кэш, затем открывается следующая форма, проверяем кэш, видим в нем нужный датасет - используем его, не видим - создаем, заполняем, помещаем в кэш... Очень близко к System.Web.Caching.Cache там и зависимости можно прописать, например на формы которые использую его. Но можно его использовать в winform? думаю еще создать класс со статическим hashtable и в него засовывать датасеты - могут ли тут быть грабли?
...
Рейтинг: 0 / 0
Кэширование Dataset
    #32565607
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю еще создать класс со статическим hashtable и в него засовывать датасеты - могут ли тут быть грабли?

такой вариант не пробовал


Открыли форму, создали датасет, заполнили его, поместили в кэш, затем открывается следующая форма, проверяем кэш, видим в нем нужный датасет - используем его, не видим - создаем, заполняем, помещаем в кэш...

Подобную функциональность создать несложно.
Можно примерно так. Утрирую пример с применение одного экземпляра dataSet в главной форме:

Код в главной форме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private DataSet m_dataSet; // наш DataSet

internal DataSet CreateDataSet()
{
  if (this.m_dataSet != null)
  {
     return this.m_dataSet
  }
  
  DataSet ds = new DataSet();
  // код по заполнению DataSet
  this.m_dataSet = ds;
  return ds;
}


Код в одной из формы использующей наш DataSet.
Код: plaintext
1.
2.
// вернули mainForm
this.dataGrid1.DataSource = mainForm.CreateDataSet();

Итог один DataSet на все приложение. Который создается только при первом к нему обращении.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Кэширование Dataset
    #32575019
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синглтон, возвращающий DataSet, решит вашу проблему.
...
Рейтинг: 0 / 0
Кэширование Dataset
    #32575068
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да проблемы то нет
singleton pattern - всего лишь еще одна из вариаций
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Кэширование Dataset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]