Share via


DataRow の削除

DataTable オブジェクトから DataRow オブジェクトを削除するには、DataRowCollection オブジェクトの Remove メソッドと DataRow オブジェクトの Delete メソッドの 2 つのメソッドを使用できます。 Remove メソッドは DataRowCollection から DataRow を削除しますが、一方の Delete メソッドは削除対象の行をマークするだけです。 実際の削除は、アプリケーションが AcceptChanges メソッドを呼び出すと実行されます。 Delete を使用すると、行を実際に削除する前に、削除対象としてどの行がマークされているかをプログラムによってチェックできます。 削除対象としてマークされている行の RowState プロパティは、Deleted に設定されます。

DataAdapter およびリレーショナル データ ソースに関連して DataSet または DataTable を使用するときは、DataRowDelete メソッドを使用して行を削除します。 Delete メソッドは、DataSet または DataTable の行を Deleted としてマークしますが、その行を削除しません。 代わりに、DataAdapterDeleted としてマークされた行を検出したときに DeleteCommand メソッドを実行して、データ ソースの該当する行を削除します。 その後、AcceptChanges メソッドを使用して、その行を永続的に削除できます。 Remove を使用して行を削除すると、行はテーブルから完全に削除されますが、DataAdapter はデータ ソースの該当する行を削除しません。

DataRowCollectionRemove メソッドが DataRow を引数として受け取り、その行をコレクションから削除する例を次に示します。

workTable.Rows.Remove(workRow)
workTable.Rows.Remove(workRow);

これに対して、DataRowDelete メソッドを呼び出して、該当する行の RowStateDeleted に変更する例を次に示します。

workRow.Delete
workRow.Delete();

行を削除対象としてマークしてから DataTable オブジェクトの AcceptChanges メソッドを呼び出すと、その行が DataTable から削除されます。 これに対して、RejectChanges を呼び出すと、行の RowState はその行が Deleted としてマークされる前の状態に戻ります。

メモメモ

DataRowRowStateAdded である場合、つまりテーブルに行が追加された直後の状態の場合に、その行を Deleted としてマークすると、その行はテーブルから削除されます。

参照

参照

DataRow

DataRowCollection

DataTable

その他の技術情報

DataTable 内のデータの操作