次の方法で共有


IDataAdapter.Fill(DataSet) メソッド

定義

DataSet名を使用してデータ ソース内の行と一致するようにDataSetの行を追加または更新し、"Table" という名前のDataTableを作成します。

public:
 int Fill(System::Data::DataSet ^ dataSet);
public int Fill(System.Data.DataSet dataSet);
abstract member Fill : System.Data.DataSet -> int
Public Function Fill (dataSet As DataSet) As Integer

パラメーター

dataSet
DataSet

レコードと必要に応じてスキーマを入力する DataSet

戻り値

DataSetで正常に追加または更新された行の数。 これには、行を返さないステートメントの影響を受ける行は含まれません。

注釈

Fill は、関連付けられた SelectCommand プロパティで指定された SELECT ステートメントを使用して、データ ソースから行を取得します。 SELECT ステートメントに関連付けられている接続オブジェクトは有効である必要がありますが、開く必要はありません。 Fillが呼び出される前に接続が閉じられた場合は、データを取得するために開かれます。その後、閉じられます。 Fillが呼び出される前に接続が開いている場合、接続は開いたままです。

次に、Fill操作により、DataSet内のコピー先DataTableオブジェクトに行が追加され、DataTable オブジェクトがまだ存在しない場合は作成されます。 DataTableオブジェクトを作成する場合、通常、Fill操作では列名メタデータのみが作成されます。 ただし、 MissingSchemaAction プロパティが AddWithKey に設定されている場合は、適切な主キーと制約も作成されます。

SelectCommand が OUTER JOIN の結果を返す場合、 DataAdapter は、生成される PrimaryKeyDataTable値を設定しません。 重複する行が正しく解決されるように、主キーを明示的に定義する必要があります。 詳しくは、「主キーの定義」をご覧ください。

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

DataSetの設定に使用する SELECT ステートメントが複数の結果 (バッチ SQL ステートメントなど) を返す場合、結果の 1 つにエラーが含まれている場合、後続の結果はすべてスキップされ、DataSetには追加されません。

同じDataTableFill メソッドを複数回使用できます。 主キーが存在する場合、受信行は、既に存在する一致する行とマージされます。 主キーが存在しない場合は、受信行が DataTableに追加されます。

複数の結果を返すバッチ SQL ステートメントを処理する場合、.NET Framework データ プロバイダーの FillFillSchema の実装では、最初の結果についてのみスキーマ情報が取得されます。

適用対象

こちらもご覧ください