Datasets. Зачем использовать адаптер запросов или табличный адаптер? - PullRequest
2 голосов
/ 05 июня 2009

Может кто-нибудь сказать мне, почему я бы использовал адаптер запроса в конструкторе набора данных вместо добавления запросов к адаптеру таблицы?

Привет

Ответы [ 3 ]

5 голосов
/ 05 июня 2009

Иногда ваши запросы не нужно связывать с фактической таблицей данных. Возможно, у вас есть запрос, который логически сгруппирован в вашем наборе данных, но не имеет реального резервного хранилища.

Для экземпляра предположим, что вы хотите вызвать хранимую процедуру, которая безопасно удаляет все связанные записи для данного клиента:

proc_DeleteAllAssociatedCustomerRecords

Это на самом деле не принадлежит какой-то одной конкретной сущности, поскольку может охватывать несколько таблиц, но все еще принадлежит вашему CustomerDataSet.

1 голос
/ 05 июня 2009

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

В дополнение к запросам, которые возвращают данные той же схемы, что и таблица данных TableAdapter, вы можете добавить запросы, которые возвращают скалярные (одиночные) значения. Например, создание запроса, который возвращает количество клиентов (SELECT Count (*) From Customers), является действительным для CustomersTableAdapter, даже если возвращаемые данные не соответствуют схеме таблицы.

http://msdn.microsoft.com/en-us/library/bz9tthwx(VS.80).aspx

1 голос
/ 05 июня 2009

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

...