DataAdapter.FillSchema DataAdapter.FillSchema DataAdapter.FillSchema Method

定義

DataTable を指定した DataSet に追加します。Adds a DataTable to the specified DataSet.

オーバーロード

FillSchema(DataSet, SchemaType, String, IDataReader) FillSchema(DataSet, SchemaType, String, IDataReader) FillSchema(DataSet, SchemaType, String, IDataReader)

DataTable を指定した DataSet に追加します。Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType) FillSchema(DataSet, SchemaType) 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) FillSchema(DataTable, SchemaType, IDataReader) FillSchema(DataTable, SchemaType, IDataReader)

DataTable を指定した DataSet に追加します。Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType, String, IDataReader) FillSchema(DataSet, SchemaType, String, IDataReader) 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 DataSet DataSet

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

schemaType
SchemaType SchemaType SchemaType

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

srcTable
String String String

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

dataReader
IDataReader IDataReader IDataReader

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

戻り値

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

こちらもご覧ください

FillSchema(DataSet, SchemaType) FillSchema(DataSet, SchemaType) 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 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.

戻り値

データ ソースから返されたスキーマ情報が格納された 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は、をDataTable変換先DataSetに追加します。A FillSchema operation adds a DataTable to the destination DataSet. 次にDataColumnCollectionDataTableのに列を追加し、データソースに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, and only if, all the unique columns are nonnullable. 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.

注意

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

注意

複数の結果を返すバッチ SQL ステートメントを処理する場合、 FillSchema OLE DB の .NET Framework Data Provider のの実装では、最初の結果のみのスキーマ情報を取得します。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. 複数の結果のスキーマ情報を取得するFillにはMissingSchemaAction 、をAddWithKeyに設定してを使用します。To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

こちらもご覧ください

FillSchema(DataTable, SchemaType, IDataReader) FillSchema(DataTable, SchemaType, IDataReader) 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 DataTable

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

schemaType
SchemaType SchemaType SchemaType

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

dataReader
IDataReader IDataReader 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.

こちらもご覧ください

適用対象