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]);
}
ちなみに、参考にしたリソースはここで見れます。