以下の内容はhttps://devlights.hatenablog.com/entry/20080214/p1より取得しました。


ADO.NET入門記-015 (Deletedとマークされた行からデータを取得する)


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]);
}


ちなみに、参考にしたリソースはここで見れます。




以上の内容はhttps://devlights.hatenablog.com/entry/20080214/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14