DataAdapter.FillSchema Метод

Определение

Добавляет объект DataTable к указанному объекту DataSet.Adds a DataTable to the specified DataSet.

Перегрузки

FillSchema(DataSet, SchemaType, String, IDataReader)

Добавляет объект DataTable к указанному объекту DataSet.Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType)

Добавляет объект DataTable в указанный объект DataSet и настраивает схему для соответствия этому объекту в источнике данных на основе указанного значения типа SchemaType.Adds a DataTable to the specified DataSet and configures the schema to match that in the data source based on the specified SchemaType.

FillSchema(DataTable, SchemaType, IDataReader)

Добавляет объект DataTable к указанному объекту DataSet.Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType, String, IDataReader)

Добавляет объект DataTable к указанному объекту DataSet.Adds a DataTable to the specified DataSet.

protected:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::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);
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.The DataTable to be filled from the IDataReader.

schemaType
SchemaType

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

srcTable
String

Имя исходной таблицы, используемое для сопоставления таблиц.The name of the source table to use for table mapping.

dataReader
IDataReader

Интерфейс IDataReader, используемый в качестве источника данных при заполнении объекта DataTable.The IDataReader to be used as the data source when filling the DataTable.

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

DataTable[]

Ссылка на коллекцию объектов DataTable, которые были добавлены в DataSet.A reference to a collection of DataTable objects that were added to the DataSet.

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

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

FillSchema(DataSet, SchemaType)

Добавляет объект DataTable в указанный объект DataSet и настраивает схему для соответствия этому объекту в источнике данных на основе указанного значения типа SchemaType.Adds a DataTable to the specified DataSet and configures the schema to match that in the data source based on the specified 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);
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);
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 для заполнения схемой из источника данных.The DataSet to be filled with the schema from the data source.

schemaType
SchemaType

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

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

DataTable[]

Объект DataTable содержит сведения схемы, возвращенные из источника данных.A DataTable object that contains schema information returned from the data source.

Реализации

Комментарии

FillSchemaМетод получает схему из источника данных с помощью SelectCommand .The FillSchema method retrieves the schema from the data source using the SelectCommand. Объект соединения, связанный с объектом, SelectCommand должен быть допустимым, но не должен быть открытым.The connection object associated with the SelectCommand must be valid, but it does not need to be open. Если соединение закрывается до FillSchema вызова метода, оно открывается для получения данных и затем закрывается.If the connection is closed before FillSchema is called, it is opened to retrieve data and then closed. Если соединение открыто до FillSchema вызова метода, оно остается открытым.If the connection is open before FillSchema is called, it remains open.

FillSchemaОперация добавляет DataTable в назначение DataSet .A FillSchema operation adds a DataTable to the destination DataSet. Затем он добавляет столбцы в DataColumnCollection DataTable и настраивает следующие DataColumn свойства, если они существуют в источнике данных:It then adds columns to the DataColumnCollection of the DataTable, and configures the following DataColumn properties if they exist at the data source:

FillSchema также настраивает PrimaryKey Свойства и в Constraints соответствии со следующими правилами.FillSchema also configures the PrimaryKey and Constraints properties according to the following rules:

  • Если один или несколько первичных ключевых столбцов возвращаются SelectCommand , они используются в качестве первичных ключевых столбцов для DataTable .If one or more primary key columns are returned by the SelectCommand, they are used as the primary key columns for the DataTable.

  • Если столбцы первичного ключа не возвращаются, но уникальные столбцы являются уникальными, то уникальные столбцы используются в качестве первичного ключа, и только в случае, если все уникальные столбцы не равны NULL.If no primary key columns are returned but unique columns are, the unique columns are used as the primary key if, and only if, all the unique columns are nonnullable. Если какой-либо из столбцов допускает значение null, UniqueConstraint добавляется к ConstraintCollection , но PrimaryKey свойство не задается.If any of the columns are nullable, a UniqueConstraint is added to the ConstraintCollection, but the PrimaryKey property is not set.

  • Если возвращаются столбцы первичного ключа и уникальные столбцы, первичные ключевые столбцы используются в качестве первичных ключевых столбцов для DataTable .If both primary key columns and unique columns are returned, the primary key columns are used as the primary key columns for the DataTable.

Примечание

Базовое хранилище данных может допускать атрибуты столбцов, которые не поддерживаются в DataColumn , что приводит к неправильному преобразованию некоторых атрибутов столбцов.The underlying data store may allow column attributes that are not supported in a DataColumn, which causes some column attributes to not translate correctly. Например, SQL Server позволяет использовать столбец идентификаторов с типом данных tinyint, в то время как DataColumn для значения свойства можно задать только Int16, Int32 и Int64 AutoIncrement .For example, SQL Server allows an identity column with a data type of tinyint whereas a DataColumn only allows Int16, Int32, and Int64 to have the AutoIncrement property set. FillSchema автоматически игнорирует случаи, когда DataColumn не может точно создать зеркальную копию источника данных и не создает исключение.FillSchema silently ignores cases where the DataColumn cannot accurately mirror the data source and throws no exception.

Обратите внимание, что первичные ключи и ограничения UNIQUE добавляются в в в ConstraintCollection соответствии с предыдущими правилами, но другие типы ограничений не добавляются.Note that primary keys and unique constraints are added to the ConstraintCollection according to the preceding rules, but other constraint types are not added.

Если для столбца или столбцов в SQL Server таблице определен уникальный кластеризованный индекс, а для отдельного набора столбцов определено ограничение PRIMARY KEY, то будут возвращены имена столбцов в кластеризованном индексе.If a unique clustered index is defined on a column or columns in a SQL Server table and the primary key constraint is defined on a separate set of columns, then the names of the columns in the clustered index will be returned. Чтобы получить имена и имена первичных ключевых столбцов, используйте указание запроса с инструкцией SELECT, указывающей имя индекса первичного ключа.To return the name or names of the primary key columns, use a query hint with the SELECT statement that specifies the name of the primary key index. Дополнительные сведения об указании указания запросов см. в разделе указания (Transact-SQL) — Query.For more information about specifying query hints, see Hints (Transact-SQL) - Query.

Если DataAdapter обнаруживает дублированные столбцы при заполнении DataTable , он создает имена для последующих столбцов с использованием шаблона "ColumnName1", "ColumnName2", "ColumnName3" и т. д.If the DataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Если входящие данные содержат безымянные столбцы, они помещаются в в соответствии с DataSet шаблоном «Столбец1», «Столбец2» и т. д.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. При добавлении нескольких результирующих наборов в DataSet каждый результирующий набор помещается в отдельную таблицу.When multiple result sets are added to the DataSet each result set is placed in a separate table. Дополнительные результирующие наборы именуются путем добавления целочисленных значений к заданному имени таблицы (например, "Table", "table1", "Table2" и т. д.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Приложения, использующие имена столбцов и таблиц, должны гарантировать, что конфликты с этими шаблонами именования не происходят.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

FillSchema не возвращает никаких строк.FillSchema does not return any rows. Используйте Fill метод для добавления строк в DataTable .Use the Fill method to add rows to a DataTable.

Примечание

При обработке инструкций SQL пакетной службы, возвращающих несколько результатов, реализация FillSchema для .NET Framework поставщика данных для OLE DB получает сведения о схеме только для первого результата.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Чтобы получить сведения о схеме для нескольких результатов, используйте с параметром, равным Fill MissingSchemaAction AddWithKey .To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

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

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

FillSchema(DataTable, SchemaType, IDataReader)

Добавляет объект DataTable к указанному объекту DataSet.Adds a DataTable to the specified DataSet.

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);
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.The DataTable to be filled from the IDataReader.

schemaType
SchemaType

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

dataReader
IDataReader

Интерфейс IDataReader, используемый в качестве источника данных при заполнении объекта DataTable.The IDataReader to be used as the data source when filling the DataTable.

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

DataTable

Объект DataTable содержит сведения схемы, возвращенные из источника данных.A DataTable object that contains schema information returned from the data source.

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

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