【サンプル C#】
///
/// 更新中のDataSetに更新完了結果をマージします。
/// (マージ処理後、更新元の新規追加行を削除します。)
///
/// param name="dsBase":元となるDataSet
/// param name="dsNew":更新するDataSet
public void DataSetMerge( DataSet dsBase, DataSet dsNew )
{
//Debug.WriteLine("DataSetMerge:開始");
// 追加分を含む更新情報を旧データに反映
dsBase.Merge(dsNew);
// 重複を避ける為に元データの新規追加分を削除(キーIndex番号が仮番号である為)
foreach ( DataTable tbl in dsBase.Tables )
{
// 追加ステータス行を抽出&削除
foreach ( DataRow drBase in tbl.Select( null, null, DataViewRowState.Added))
{
// 追加ステータス行を削除
tbl.Rows.Remove(drBase);
}
}
// 更新を確定し、ステータスをクリア
dsBase.AcceptChanges();
//Debug.WriteLine("DataSetMerge:終了");
}
|