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[]

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

Комментарии

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

Операция FillSchema добавляет объект DataTable в место назначения DataSet. Затем он добавляет столбцы в 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несколько результирующих наборов, каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Приложения должны соблюдать осторожность при использовании имен столбцов и таблиц, чтобы убедиться, что конфликты с этими шаблонами именования не возникают.

FillSchema возвращает строки без строк. Fill Используйте метод для добавления строк в объект DataTable.

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

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