Свойство 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.
Основы работы с Microsoft ADO.NET
Использование поставщика данных .NET
Метео


