DataAdapter.FillSchema Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| FillSchema(DataSet, SchemaType, String, IDataReader) | |
| FillSchema(DataSet, SchemaType) |
Добавляет в DataTable указанный DataSet и настраивает схему для сопоставления в источнике данных на основе указанного SchemaType. |
| FillSchema(DataTable, SchemaType, IDataReader) |
FillSchema(DataSet, SchemaType, String, IDataReader)
- Исходный код:
- DataAdapter.cs
- Исходный код:
- DataAdapter.cs
- Исходный код:
- DataAdapter.cs
- Исходный код:
- DataAdapter.cs
- Исходный код:
- DataAdapter.cs
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()
Параметры
- schemaType
- SchemaType
Одно из значений SchemaType .
Возвращаемое значение
DataTable Объект, содержащий сведения о схеме, возвращаемые из источника данных.
Реализации
- Атрибуты
Комментарии
Метод FillSchema извлекает схему из источника данных с помощью метода SelectCommand. Объект подключения, связанный с ним, должен быть допустимым SelectCommand , но он не должен быть открыт. Если соединение закрыто перед FillSchema вызовом, оно открывается для получения данных и закрытия. Если соединение открыто перед FillSchema вызовом, оно остается открытым.
Операция FillSchema добавляется DataTable в место назначения DataSet. Затем он добавляет столбцы в DataColumnCollection список DataTableи настраивает следующие DataColumn свойства, если они существуют в источнике данных:
AutoIncrement. Необходимо задать AutoIncrementStep и AutoIncrementSeed отдельно.
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
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 Объект, содержащий сведения о схеме, возвращаемые из источника данных.
- Атрибуты