Share via


IDataAdapter.FillSchema(DataSet, SchemaType) メソッド

定義

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

public:
 cli::array <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);
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 値のいずれか 1 つ。

戻り値

データ ソースから返されたスキーマ情報が格納された、DataTable オブジェクトの配列。

注釈

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

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

FillSchema また、次の PrimaryKey 規則に従って および Constraints プロパティを構成します。

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

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

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

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

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

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

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

適用対象

こちらもご覧ください