Четверг Мая 17 , 2012
TEXT_SIZE
   


Свойство MissingMappingAction

Индекс материала
Свойство MissingMappingAction
Страница 2

Вы уже знаете, как заполнить набор TableMappings объекта DataTable информацией о таблицах и столбцах. Но, как вы, возможно, заметили, предоставлять эту информацию не требуется. Примеры из предыдущих разделов с помощью метода DataAdapterfi. il создавали и заполняли новые объекты DataTable несмотря на то, что у объекта DataAdapter не было сведений о сопоставлении столбцов.

В большинстве случаев программисты используют в объекте DataSet те же имена столбцов, что и в БД. Команда разработчиков ADO. NET сделала разумное предположение, что программистам не понравится, если для выборки данных в объект DataSet придется в обязательном порядке заполнить набор TableMappings объекта DataAdapter идентичными именами столбцов БД и объекта DataSet. Если при просмотре результатов запроса объект DataAdapter обнаружит столбец, отсутствующий в наборе TableMappings, он проверит значение свойства MissingMappingAction и определит, что делать с такими столбцами дальше. Свойство MissingMappingAction принимает значения из одноименного перечисления, относящегося к пространству имен SystemData. Значение данного свойства по умолчанию — Passthrough. При этом объект DataAdapter сопоставляет столбцы набора результатов, отсутствующие в наборе TableMappings, с одноименными столбцами объекта DataSet.

Если задать свойству MissingMappingAction значение Ignore, DataAdapter игнорирует столбцы, отсутствующие в наборе TableMappings. Кроме того, свойству MissingMappingAction можно задать значение Error, и в результате объект DataAdapter, обнаружив отсутствующий в наборе TableMappings столбец, будет генерировать исключение. Работа с пакетными запросами Запросы из предыдущих разделов главы возвращали только один набор результатов. Некоторые БД, например Microsoft SQL Server, позволяют выполнять пакет ные запросы, возвращающие несколько результатов: SELECT CustomerlD, CompanyName, ContactName, Phone FROM Customers WHERE CustomerlD = 'ALFKI1; SELECT OrderlD, CustomerlD, EmployeeID, OrderDate FROM Orders WHERE CustomerlD = 'ALFKI' Если вы создадите объект DataAdapter, использующий этот запрос, и вставите его результаты в объект DataSet посредством такого фрагмента кода DataAdapteг. Fill(DataSet) будут заполнены два объекта DataTable, относящиеся к объекту DataSet. Результаты первой части запроса, выполняемой к таблице Customers, помещаются в объект DataTable с именем Table, а результаты второй части, выполняемой к таблице Orders, — в объект DataTable с именем Table 1. Вполне вероятно, что вы захотите задать объектам DataTable более содержательные имена. Набор TableMappings объекта DataAdapter способен содержать несколько объектов DataTableMapping.

Добавляя записи в этот набор, можно управлять именами таблиц, которые объект DataAdapter использует при размещении результатов пакетного запроса. Следующий фрагмент кода помещает результаты пакетного запроса в две таблицы объекта DataSet — Customers и Orders. Visual Basic.



Добавить комментарий


Защитный код
Обновить

Рейтинг пользователей: / 0
ХудшийЛучший 

Метео

Войти

Голосование

Идеальный вариант проведения новогодней корпоративной вечеринки - это…

Сейчас на сайте

Сейчас 6 гостей онлайн