SqlDataSource создан для каждого клиента, который подключается к серверу? - PullRequest
1 голос
/ 27 августа 2011

Предположим, у меня есть страница с сеткой данных, связанной с источником данных. Если у меня есть 2 разных клиента, обращающихся к этой странице, различается ли источник данных для каждого из них или они используют один и тот же источник данных?

  • Если они одинаковы, что произойдет, если клиент применяет фильтр? Другие клиенты тоже видят этот фильтр? Как этого избежать?

  • Если они не совпадают, и у меня большое количество записей, а режим источника данных - это DataSet, будет ли это хранить 2 копии одинаковых данных на сервере? Как мне решить такие проблемы?

Ответы [ 2 ]

1 голос
/ 27 августа 2011

Элемент управления SqlDataSource является классом экземпляра, поэтому он будет создаваться заново при каждом запросе. Возможно, вы захотите изучить пул соединений, поэтому вы можете повторно использовать соединения с базой данных.

Я не думаю, что можно сделать управление статичным, и я не думаю, что вам нужно делать управление статическим. Если вы хотите повторно использовать набор данных для всех пользователей, которые посещают страницу, я хотел бы изучить кэширование набора данных или его сохранение в состоянии приложения. Я полагаю, что вы можете сделать это с SqlDataSource, используя смесь событий OnSelecting и OnSelected.

  • Кэширование DataSet в событии OnSelected
  • В событии OnSelecting проверьте, есть ли у вас кэшированный набор данных, и отмените выбор, если вы это сделаете.
0 голосов
/ 27 августа 2011

Они являются отдельными, если вы не сделали статический набор данных, тогда он будет доступен всем экземплярам страницы.Я не уверен, какую проблему вы пытаетесь решить точно?За базой данных нет базы данных?Или вас беспокоит потребление памяти?

...