2009-06-05 2 views

ответ

5

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

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

proc_DeleteAllAssociatedCustomerRecords

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

1

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

1

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

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

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

Смежные вопросы