IDataAdapter.FillSchema(DataSet, SchemaType) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет объект DataTable с именем Table в указанный объект DataSet и настраивает схему для соответствия этому объекту в источнике данных на основе указанного значения типа SchemaType.
public:
cli::array <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);
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 добавляет к целевому DataTableDataSetобъекту . Затем он добавляет столбцы в DataColumnCollection и DataTable настраивает следующие 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 в соответствии с шаблонами "Столбец1", "Столбец2" и т. д. При добавлении нескольких результирующих наборов в DataSetкаждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, "Table", "Table1", "Table2" и т. д.). Приложения должны соблюдать осторожность при использовании имен столбцов и таблиц, чтобы не возникало конфликтов с этими шаблонами именования.
FillSchema не возвращает строк. Используйте метод для Fill добавления строк в DataTable.