IDataAdapter.Fill メソッド
アセンブリ: System.Data (system.data.dll 内)

Dim instance As IDataAdapter Dim dataSet As DataSet Dim returnValue As Integer returnValue = instance.Fill(dataSet)
戻り値
DataSet で正常に追加または更新された行数。これには、行を返さないステートメントの影響を受ける行は含まれません。

Fill は、関連付けられた SelectCommand プロパティで指定された SELECT ステートメントを使用して、データ ソースから行を取得します。SELECT ステートメントに関連付けられた接続オブジェクトは、有効なものでなければなりませんが、開いている必要はありません。Fill を呼び出す前に接続が閉じていた場合は、接続が開かれ、データを取得した後で再び閉じられます。Fill を呼び出す前に接続が開いていた場合は、接続は開いたままになります。
次に、Fill は、DataSet 内にある追加先の DataTable オブジェクトに行を追加します。DataTable オブジェクトが存在しない場合は、新しく作成します。DataTable オブジェクトを作成する場合、Fill は、通常、列名メタデータのみを作成します。ただし、MissingSchemaAction プロパティが AddWithKey に設定されている場合は、適切な主キーおよび制約も作成します。
SelectCommand から OUTER JOIN の結果が返された場合、DataAdapter は、結果の DataTable に PrimaryKey の値を設定しません。行の重複が正しく解決されるようにするには、明示的に主キーを定義する必要があります。詳細については、「テーブルの主キーの定義」を参照してください。
DataTable へのデータの格納中に重複する列が見つかった場合、2 番目以降の列には、IDataAdapter によって、columnname1、columnname2、columnname3 のような形式で名前が生成されます。受信したデータに無名の列が含まれていた場合は、Column1、Column2 のような形式の名前で DataSet に列が格納されます。DataSet に複数結果セットを追加するときは、各結果セットが個別のテーブルに格納されます。2 番目以降の結果セットには、指定されたテーブル名に整数値を追加した名前が付けられます。たとえば、Table、Table1、Table2 のようになります。アプリケーションで列名およびテーブル名を使用するときは、これらの形式の名前と衝突しないように注意する必要があります。
バッチ SQL ステートメントなど、DataSet へのデータの格納に使用する SELECT ステートメントが複数の結果を返す場合は、結果の 1 つにエラーが含まれていると、それ以降の結果はすべてスキップされ、DataSet に追加されません。
Fill メソッドは、同じ DataTable に対して複数回使用できます。主キーが存在する場合は、受信した行が既存の一致する行とマージされます。主キーが存在しない場合は、受信した行が DataTable に追加されます。
![]() |
---|
複数の結果を返すバッチ SQL ステートメントを処理する場合、.NET Framework データ プロバイダの Fill および FillSchema の実装では、最初の結果のスキーマ情報だけが取得されます。 |

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- IDataAdapter.Fill メソッドのページへのリンク