IDataAdapter.FillSchema(DataSet, SchemaType) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
DataTable Добавляет имя "Таблица" в указанный DataSet и настраивает схему для сопоставления в источнике данных на основе указанногоSchemaType.
public:
cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
public System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()
Параметры
- schemaType
- SchemaType
Одно из значений SchemaType .
Возвращаемое значение
Массив DataTable объектов, содержащих сведения о схеме, возвращаемые из источника данных.
- Атрибуты
Комментарии
Метод FillSchema извлекает схему из источника данных с помощью метода SelectCommand. Объект подключения, связанный с ним, должен быть допустимым SelectCommand , но он не должен быть открыт. Если соединение закрыто перед FillSchema вызовом, оно открывается для получения данных, а затем закрывается. Если соединение открыто перед FillSchema вызовом, оно остается открытым.
Операция FillSchema добавляется DataTable в место назначения DataSet. Затем он добавляет столбцы в DataColumnCollectionDataTable список и настраивает следующие DataColumn свойства, если они существуют в источнике данных:
AutoIncrement. Необходимо задать AutoIncrementStep и AutoIncrementSeed отдельно.
FillSchema также настраивает PrimaryKey свойства в Constraints соответствии со следующими правилами:
Если один или несколько столбцов первичного ключа возвращаютсяSelectCommand, они используются в качестве столбцов первичного ключа для .DataTable
Если возвращаемые столбцы первичного ключа не возвращаются, но уникальные столбцы не являются, уникальные столбцы используются в качестве первичного ключа, если все уникальные столбцы не имеют значения NULL. Если любой из столбцов имеет значение NULL, UniqueConstraint добавляется в нее ConstraintCollection, но PrimaryKey свойство не задано.
Если возвращаются оба столбца первичного ключа и уникальные столбцы, то столбцы первичного ключа используются в качестве столбцов первичного ключа для столбцов DataTable.
Обратите внимание, что первичные ключи и уникальные ограничения добавляются в ConstraintCollection соответствии с предыдущими правилами, но другие типы ограничений не добавляются.
Если уникальный кластеризованный индекс определен в столбце или столбцах таблицы SQL Server, а ограничение первичного ключа определяется в отдельном наборе столбцов, то имена столбцов в кластеризованном индексе будут возвращены. Чтобы вернуть имя или имена столбцов первичного ключа, используйте указание запроса с инструкцией SELECT, указывающей имя индекса первичного ключа. Дополнительные сведения об указании запросов см. в разделе "Подсказки" (Transact-SQL) — запрос.
Если при IDataAdapter заполнении DataTableстолбцов возникают повторяющиеся столбцы, он создает имена для последовательных столбцов, используя шаблон columnname1, columnname2, columnname3 и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д. При добавлении DataSetнескольких результирующих наборов в группу результатов каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Приложения должны использовать осторожность при использовании имен столбцов и таблиц, чтобы убедиться, что конфликты с этими шаблонами именования не возникают.
FillSchema возвращает не строки. Fill Используйте метод для добавления строк в объектDataTable.