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


DataAdapter.FillSchema Метод

Определение

Добавляется в указанный DataTableDataSetобъект.

Перегрузки

Имя Описание
FillSchema(DataSet, SchemaType, String, IDataReader)

Добавляется в указанный DataTableDataSetобъект.

FillSchema(DataSet, SchemaType)

Добавляет в DataTable указанный DataSet и настраивает схему для сопоставления в источнике данных на основе указанного SchemaType.

FillSchema(DataTable, SchemaType, IDataReader)

Добавляется в указанный DataTableDataSetобъект.

FillSchema(DataSet, SchemaType, String, IDataReader)

Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs

Добавляется в указанный DataTableDataSetобъект.

protected:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::String ^ srcTable, System::Data::IDataReader ^ dataReader);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("dataReader's schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader);
protected virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("dataReader's schema table types cannot be statically analyzed.")>]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
Protected Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType, srcTable As String, dataReader As IDataReader) As DataTable()

Параметры

dataSet
DataSet

Заполнение DataTable из IDataReader.

schemaType
SchemaType

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

srcTable
String

Имя исходной таблицы, используемой для сопоставления таблиц.

dataReader
IDataReader

Используемый IDataReader в качестве источника данных при заполнении DataTable.

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

Ссылка на коллекцию DataTable объектов, добавленных в объект DataSet.

Атрибуты

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

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

FillSchema(DataSet, SchemaType)

Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs

Добавляет в DataTable указанный DataSet и настраивает схему для сопоставления в источнике данных на основе указанного SchemaType.

public:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public:
 abstract 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 virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
public virtual System.Data.DataTable[] FillSchema(System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
public abstract 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[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()
Public MustOverride 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. Затем он добавляет столбцы в DataColumnCollection список DataTableи настраивает следующие DataColumn свойства, если они существуют в источнике данных:

FillSchema также настраивает PrimaryKey свойства в Constraints соответствии со следующими правилами:

  • Если один или несколько столбцов первичного ключа возвращаютсяSelectCommand, они используются в качестве столбцов первичного ключа для .DataTable

  • Если первичные ключевые столбцы не возвращаются, но уникальные столбцы не являются, уникальные столбцы используются в качестве первичного ключа, если и только если все уникальные столбцы не являются нуллиальными. Если любой из столбцов имеет значение NULL, UniqueConstraint добавляется в нее ConstraintCollection, но PrimaryKey свойство не задано.

  • Если возвращаются оба столбца первичного ключа и уникальные столбцы, то столбцы первичного ключа используются в качестве столбцов первичного ключа для столбцов DataTable.

Замечание

Базовое хранилище данных может разрешить атрибуты столбцов, которые не поддерживаются в объекте DataColumn, что приводит к неправильному переводу некоторых атрибутов столбцов. Например, SQL Server позволяет столбцу удостоверений с типом данных tinyint, а DataColumn только int16, Int32 и Int64 иметь AutoIncrement набор свойств. FillSchema Автоматически игнорирует случаи, когда DataColumn невозможно точно зеркально отображать источник данных и не вызывает исключения.

Обратите внимание, что первичные ключи и уникальные ограничения добавляются в ConstraintCollection соответствии с приведенными выше правилами, но другие типы ограничений не добавляются.

Если уникальный кластеризованный индекс определен в столбце или столбцах таблицы SQL Server, а ограничение первичного ключа определяется в отдельном наборе столбцов, то имена столбцов в кластеризованном индексе будут возвращены. Чтобы вернуть имя или имена столбцов первичного ключа, используйте указание запроса с инструкцией SELECT, указывающей имя индекса первичного ключа. Дополнительные сведения об указании запросов см. в разделе "Подсказки" (Transact-SQL) — запрос.

Если при DataAdapter заполнении DataTableстолбцов возникают повторяющиеся столбцы, он создает имена для последующих столбцов, используя шаблон "columnname1", "columnname2", "columnname3" и т. д. Если входящие данные содержат неименованные столбцы, они помещаются в DataSet шаблон "Column1", "Column2" и т. д. При добавлении нескольких результирующих наборов в DataSet каждый результирующий набор помещается в отдельную таблицу. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к указанному имени таблицы (например, Table1, Table1, Table2 и т. д.). Приложения, использующие имена столбцов и таблиц, должны гарантировать, что конфликты с этими шаблонами именования не происходят.

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

Замечание

При обработке инструкций пакетного SQL, возвращающих несколько результатов, реализация FillSchema поставщика данных .NET Framework для OLE DB извлекает сведения о схеме только для первого результата. Чтобы получить сведения о схеме MissingSchemaAction для нескольких результатов, используйте Fill для параметра set AddWithKeyзначение .

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

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

FillSchema(DataTable, SchemaType, IDataReader)

Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs
Исходный код:
DataAdapter.cs

Добавляется в указанный DataTableDataSetобъект.

protected:
 virtual System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType, System::Data::IDataReader ^ dataReader);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("dataReader's schema table types cannot be statically analyzed.")]
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
protected virtual System.Data.DataTable? FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
protected virtual System.Data.DataTable FillSchema(System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("dataReader's schema table types cannot be statically analyzed.")>]
abstract member FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
abstract member FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
Protected Overridable Function FillSchema (dataTable As DataTable, schemaType As SchemaType, dataReader As IDataReader) As DataTable

Параметры

dataTable
DataTable

Заполнение DataTable из IDataReader.

schemaType
SchemaType

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

dataReader
IDataReader

Используемый IDataReader в качестве источника данных при заполнении DataTable.

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

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

Атрибуты

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

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