次の方法で共有


テーブルからの行の削除

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)
[C#]
workTable.Rows.Remove(workRow);

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

workRow.Delete
[C#]
workRow.Delete();

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

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

参照

DataTable 内のデータの操作 | DataRow クラス | DataRowCollection クラス | DataTable クラス