Бөлісу құралы:


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

Параметры

dataSet
DataSet

Значение DataSet , заполненное схемой из источника данных.

schemaType
SchemaType

Одно из значений SchemaType .

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

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

Атрибуты

Комментарии

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

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

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.

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

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