Language

DataAdapter.FillSchema メソッド

定義

指定したDataTableにDataSetを追加します。

オーバーロード

名前 説明
FillSchema(DataSet, SchemaType, String, IDataReader)

指定したDataTableにDataSetを追加します。

FillSchema(DataSet, SchemaType)

指定したDataTableにDataSetを追加し、指定したSchemaTypeに基づいてデータ ソース内のスキーマと一致するようにスキーマを構成します。

FillSchema(DataTable, SchemaType, IDataReader)

指定したDataTableにDataSetを追加します。

FillSchema(DataSet, SchemaType, String, IDataReader)

ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs

指定したDataTableにDataSetを追加します。

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値の 1 つ。

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値の 1 つ。

返品

データ ソースから返されるスキーマ情報を格納する DataTable オブジェクト。

実装

属性

注釈

FillSchema メソッドは、SelectCommandを使用してデータ ソースからスキーマを取得します。 SelectCommandに関連付けられている接続オブジェクトは有効である必要がありますが、開く必要はありません。 FillSchemaが呼び出される前に接続が閉じられると、データを取得するために開かれた後、閉じられます。 FillSchemaが呼び出される前に接続が開いている場合、接続は開いたままです。

FillSchema操作では、変換先のDataTableにDataSetが追加されます。 次に、DataColumnCollectionのDataTableに列を追加し、データ ソースに存在する場合は、次のDataColumnプロパティを構成します。

FillSchema では、次の規則に従って、 PrimaryKey プロパティと Constraints プロパティも構成されます。

  • SelectCommandによって 1 つ以上の主キー列が返された場合は、DataTableの主キー列として使用されます。

  • 主キー列が返されないが、一意の列が返されない場合は、すべての一意の列が null にできない場合にのみ、一意の列が主キーとして使用されます。 いずれかの列が null 許容の場合、 UniqueConstraint は ConstraintCollectionに追加されますが、 PrimaryKey プロパティは設定されません。

  • 主キー列と一意の列の両方が返された場合、主キー列が DataTableの主キー列として使用されます。

Note

基になるデータ ストアでは、 DataColumnでサポートされていない列属性が許可されることがあります。これにより、一部の列属性が正しく変換されません。 たとえば、SQL Server では tinyint のデータ型を持つ ID 列を使用できます。一方、 DataColumn では Int16、Int32、Int64 にのみ AutoIncrement プロパティを設定できます。 FillSchema DataColumnがデータ ソースを正確にミラーリングできず、例外をスローしない場合は、警告なしで無視します。

上記の規則に従って主キーと一意の制約が ConstraintCollection に追加されますが、他の制約の種類は追加されないことに注意してください。

SQL Server テーブルの列または列に一意のクラスター化インデックスが定義されていて、主キー制約が別の列セットで定義されている場合は、クラスター化インデックス内の列の名前が返されます。 主キー列の名前を返すには、主キー インデックスの名前を指定する SELECT ステートメントでクエリ ヒントを使用します。 クエリ ヒントの指定の詳細については、「 ヒント (Transact-SQL) - クエリ」を参照してください。

DataAdapterがDataTableの設定中に重複する列を検出すると、パターン "columnname1"、"columnname2"、"columnname3" などを使用して、後続の列の名前が生成されます。 受信データに名前のない列が含まれている場合は、"Column1"、"Column2" などのパターンに従って、 DataSet に配置されます。 複数の結果セットが DataSet に追加されると、各結果セットは個別のテーブルに配置されます。 追加の結果セットには、指定したテーブル名に整数値 ("Table"、"Table1"、"Table2" など) を追加することで名前が付けられます。 列名とテーブル名を使用するアプリケーションでは、これらの名前付けパターンとの競合が発生しないようにする必要があります。

FillSchema は行を返しません。 Fillに行を追加するには、DataTable メソッドを使用します。

Note

複数の結果を返すバッチ SQL ステートメントを処理する場合、.NET Framework Data Provider for OLE DB の FillSchema の実装では、最初の結果についてのみスキーマ情報が取得されます。 複数の結果のスキーマ情報を取得するには、Fillを MissingSchemaAction に設定したAddWithKeyを使用します。

こちらもご覧ください

適用対象

FillSchema(DataTable, SchemaType, IDataReader)

ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs
ソース:
DataAdapter.cs

指定したDataTableにDataSetを追加します。

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値の 1 つ。

dataReader
IDataReader

IDataReaderを入力するときにデータ ソースとして使用するDataTable。

返品

データ ソースから返されるスキーマ情報を格納する DataTable オブジェクト。

属性

こちらもご覧ください

適用対象