IDataAdapter.FillSchema(DataSet, SchemaType) IDataAdapter.FillSchema(DataSet, SchemaType) IDataAdapter.FillSchema(DataSet, SchemaType) Method

定義

"Table" という名前の DataTable を指定された DataSet に追加し、指定された SchemaType に基づいて、データ ソースにあるスキーマと一致するようにスキーマを構成します。Adds a DataTable named "Table" to the specified DataSet and configures the schema to match that in the data source based on the specified 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[]

パラメーター

dataSet
DataSet DataSet DataSet

データ ソースからのスキーマを格納する DataSetThe DataSet to be filled with the schema from the data source.

schemaType
SchemaType SchemaType SchemaType

SchemaType 値のいずれか 1 つ。One of the SchemaType values.

戻り値

データ ソースから返されたスキーマ情報が格納された、DataTable オブジェクトの配列。An array of DataTable objects that contain 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, 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また、はPrimaryKeyConstraints次の規則に従ってプロパティとプロパティを構成します。FillSchema also configures the PrimaryKey and Constraints properties according to the following rules:

  • 1つ以上の主キー列がによって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 all the unique columns are non-nullable. 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.

前の規則に従って、主キーと一意ConstraintCollectionの制約がに追加されることに注意してください。ただし、その他の制約の種類は追加されません。Note that primary keys and unique constraints are added to the ConstraintCollection according to the previous rules, but other constraint types are not added.

SQL Server テーブルの1つまたは複数の列に一意のクラスター化インデックスが定義されていて、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)」を参照してください。For more information about how to specify query hints, see Query Hint (Transact-SQL).

がの設定中にDataTable重複する列を検出すると、"columnname1"、"columnname2"、"columnname3"などのパターンを使用して、連続した列の名前が生成されます。IDataAdapterIf the IDataAdapter encounters duplicate columns while populating a DataTable, it generates names for the successive columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. 受信データに名前のない列が含まれている場合DataSetは、"Column1"、"Column2" などのパターンに従ってに格納されます。If the incoming data contains unnamed columns, they are put 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 put 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 should use caution when using column and table names to ensure that conflicts with these naming patterns do not occur.

FillSchema行を返しません。FillSchema returns no rows. に行Fillを追加するには、メソッドを使用します。DataTableUse the Fill method to add rows to a DataTable.

適用対象

こちらもご覧ください