【サンプル C#】
DataTable の指定列がある値の行の更新を元に戻します。
// dt は DataTable
// index は指定の列番号
// KeyValue は指定する値
// 追加行の復旧に伴う行削減に対応する為、最終レコードから遡って処理する
for ( int n = dt.Rows.Count - 1 ; n <= 0 ; n-- )
{
DataRow dr = dt.Rows[n];
// 削除された行は、元のデータでチェック
if ( dr.RowState == DataRowState.Deleted )
{
if ( dr[index, DataRowVersion.Original] != KeyValue )
{
// 更新を元に戻す
dr.RejectChanges();
// エラー情報をクリアする
dr.ClearErrors();
}
}
else if ( dr.RowState != DataRowState.Unchanged && dr[index] == KeyValue )
{
// 更新を元に戻す
dr.RejectChanges();
// エラー情報をクリアする
dr.ClearErrors();
}
}
|