powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / А зачем он нужен, этот DataSet?
6 сообщений из 6, страница 1 из 1
А зачем он нужен, этот DataSet?
    #32899590
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все никак не получается у меня понять скрытого великого смысла Dataset'a в Windows-приложениях.
Если сравнивать ADO и ADO.NET, то можно легко понять, что аналог АДОшному рекордсету - это DataTable. DataTable имеет свой собственный DataAdapter, отвечающий за считывание/изменение данных. А в DataSet группируются несколько DataTable, навешиваются Relations и все такое. Вопрос: зачем это надо на практике?

1. Если есть большая таблица с короткими записями и к ней справочная - с длинными записями (напр, Заказы (КодЗаказа, КодКлиента) и Клиенты(КодКлиента, Имя, Телефон, Адрес, и т.д.). Чтобы не тащить много данных, можно считать отдельно одну табл, отдельно - вторую и проджойнить их уже на клиенте через ParentRow.
Однако такие случаи не очень-то распространены и создавать ради них DataSet - сомнительное удовольствие.

2. Контроль за целостностью вводимых данных (ограничение внешнего ключа). Однако в подаляющем большинстве случаев (если не во всех) пользователь не может самостоятельно создать ключ, и, следовательно, не может нарушить целостность. К тому же контроль за целостностью вполне может осуществлять БД.

Что ж еще-то? Почему нельзя ограничиться DataTable?
К тому же, в случае отсоединенного набора, чем больший объем информации мы стащим на клиента, тем более вероятны конфликты обновления. Не лучше ли получать данные маленькими "порциями" в DataTable и как можно скорее их обновлять?

Объясните, пожалуйста.
...
Рейтинг: 0 / 0
А зачем он нужен, этот DataSet?
    #32899768
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одна из задумок была такой, что клиент загрузил датасет на компьютер, уехал в командировку, поработал, приехал, залил с изменениями на сервер автоматом и всё.

Хотя это всего лишь один из возможных подходов.
...
Рейтинг: 0 / 0
А зачем он нужен, этот DataSet?
    #32899799
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ничего себе. Это хорошо, когда есть уверенность, что больше никто с этми данными не работает. А иначе - конфликты обновления. Или - кто последний, тот и прав?
Правильно ли я вас понял:
В случае обыкновенного многопользовательского клиент-серверного приложения можно (или даже нужно, т.к. создание и поддержка DataSet отжирает куда больше ресурсов, чем DataTable) использовать DataTable?
...
Рейтинг: 0 / 0
А зачем он нужен, этот DataSet?
    #32899807
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А типизированный DataTable можно сделать?
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
А зачем он нужен, этот DataSet?
    #32899809
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одна из задумок была сделать из DataSet бизнес-объект.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
А зачем он нужен, этот DataSet?
    #32903101
Kulibin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на счёт кто последний тот и прав, не много не правильно.
по-умолчанию скорее всего кто первый тот и прав (так датаадаптер работает).
а вообеще датасет очень удобная штука относительно него всякие гриды обычно заполняются, кроме того это действительно отсоединённая бд (обычно через вебсервисы получаем данные работаем с ними как можно дольше, что бы узкий канал связи не напрягать).
а вообще-то по этому поводу много статей примеров.
...
Рейтинг: 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]