ADO.NETにて一旦Deletedとマークされた行からデータを取得しようとすると通常エラーがでます。
それを回避するためには以下のようにします。
カラムの値を取得する際にDataRowVersion.Originalを指定する。
要は削除前の値として取得するようにするという事ですね。
ちなみに、Deletedとマークされても行データ自体は通常通り取得できます。
エラーが発生するのは、その行の各データにアクセス使用とした場合です。
以下、サンプルです。
protected void Execute(){ // // ここまでの間で、DataTableを取得もしくは作成し、1行目をDeleteしている // とします。 // DataRow deletedRow = t.Rows[0]; // 以下のように現在の値を取得しようとするとエラー. // Console.WriteLine(deletedRow[0]); // 削除前の値を取得するには以下のようにします。 Console.WriteLine(deletedRow[0, DataRowVersion.Original]); }
ちなみに、参考にしたリソースはここで見れます。