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)

指定した DataTableDataSet を追加し、指定した 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[]

パラメーター

dataSet
DataSet

DataTable からデータが格納される IDataReaderThe DataTable to be filled from the IDataReader.

schemaType
SchemaType

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

srcTable
String

テーブル マップに使用するソース テーブルの名前。The name of the source table to use for table mapping.

dataReader
IDataReader

IDataReader にデータを格納するときにデータ ソースとして使用する DataTableThe IDataReader to be used as the data source when filling the DataTable.

戻り値

DataSet に追加された DataTable オブジェクトのコレクションへの参照。A reference to a collection of DataTable objects that were added to the DataSet.

こちらもご覧ください

FillSchema(DataSet, SchemaType)

指定した DataTableDataSet を追加し、指定した 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:
 abstract cli::array <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[]

パラメーター

dataSet
DataSet

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

schemaType
SchemaType

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

戻り値

データ ソースから返されたスキーマ情報が格納された DataTableA 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 操作は、転送先 DataSetDataTable を追加します。A FillSchema operation adds a DataTable to the destination DataSet. 次に、DataTableDataColumnCollection に列を追加し、データソースに次の 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:

  • SelectCommandによって1つ以上の主キー列が返された場合は、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 値が許容される列がある場合は、UniqueConstraintConstraintCollectionに追加されますが、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 の id 列が許可されますが、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.

前の規則に従って、主キーと一意の制約が 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 テーブルの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 specifying query hints, see Query Hint (Transact-SQL).

DataTableを設定しているときに DataAdapter が重複する列を検出した場合、"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. 受信データに名前のない列が含まれている場合、"Column1"、"Column2" などのパターンに従って DataSet に配置されます。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. DataTableに行を追加するには、Fill メソッドを使用します。Use the Fill method to add rows to a DataTable.

注意

複数の結果を返すバッチ SQL ステートメントを処理する場合、OLE DB の .NET Framework Data Provider の FillSchema の実装では、最初の結果のみのスキーマ情報を取得します。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. 複数の結果のスキーマ情報を取得するには、MissingSchemaActionAddWithKeyに設定して Fill を使用します。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);
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

パラメーター

dataTable
DataTable

DataTable からデータが格納される IDataReaderThe DataTable to be filled from the IDataReader.

schemaType
SchemaType

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

dataReader
IDataReader

IDataReader にデータを格納するときにデータ ソースとして使用する DataTableThe IDataReader to be used as the data source when filling the DataTable.

戻り値

データ ソースから返されたスキーマ情報が格納された DataTableA DataTable object that contains schema information returned from the data source.

こちらもご覧ください

適用対象