データベース テーブルで行われた変更を元に戻す機能を提供するために、Clone()
多数の変更の前に DataTable を作成しました。ユーザーは、変更をキャンセルすることを決定する前に、いくつかのフォームを通過することができます。プロセスの最後にキャンセルを選択した場合は、Clone() されたデータを更新してデータベースに戻します。すでに追加されている行を削除してから、元の Clone() された行を追加し直すか、更新予定の行を更新するのが理にかなっているのかわかりません。元の行を更新する場合、クローンから元に行をコピーするためにループする必要があるようですか? それとも別の方法がありますか?
// Clone the original data
cloneDataTable = origDataTable.Clone();
cloneDataTable.ImportRow(dataRow);
// Later in the process, if I need to delete the row
dataRow.Delete();
tableAdapter.Update(dataRow);
// I was considering that I could add the cloned row back in this fashion
origDataTable.ImportRow(cloneDataTable.Rows[0]);
tableAdapter.Update(dataRow);
問題を混乱させた可能性がありますが、基本的には、一連の挿入/更新が既に実行された後に、元の Clone() されたデータをデータベースに復元する簡単で効率的な方法を探しています。
理想的には、データベースの挿入によってシーケンス値が増加するため、更新を実行したいと考えています。
ご協力ありがとうございます。必要に応じて説明を求めてください。