Поделиться через


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()

Параметры

dataSet
DataSet

Объект DataSet для заполнения схемой из источника данных.

schemaType
SchemaType

Одно из значений перечисления SchemaType.

Возвращаемое значение

Массив объектов DataTable, который содержит сведения схемы, возвращенные из источника данных.

Комментарии

Метод FillSchema извлекает схему из источника данных с помощью SelectCommand. Объект соединения, связанный с , должен быть допустимым SelectCommand , но его не нужно открывать. Если соединение закрыто перед FillSchema вызовом, оно открывается для получения данных, а затем закрывается. Если подключение открыто до FillSchema вызова, оно остается открытым.

Операция FillSchema добавляет к целевому DataTableDataSetобъекту . Затем он добавляет столбцы в DataColumnCollection и DataTable настраивает следующие DataColumn свойства, если они существуют в источнике данных:

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.

Применяется к

См. также раздел