0

2 つの をマージしようとしていますDataTable。1 つは現在のデータを表し、もう 1 つはそのデータへの提案された挿入を表します。

これらのテーブルには同じスキーマがあり、どちらも単純なユーザー提供の主キー文字列を持ちます。

私が望むは、提案された挿入行に現在のデータに既に存在するキーがある場合、エラーがスローされることです。ただし、提案された追加は、既存の行への提案された変更としてマージされるだけであり、これは私が望んでいるものではありません。

私の現在のコードは、

currentData.EnforceConstraints = false;
currentData.Merge(additions);
currentData.EnforceConstraints = true;

DataSetここで、実際にはs だけでなく s全体をマージしていDataTableます。行でエラーが発生することを望んでいましたEnforceConstraints = trueが、そうではありません。

diffgram も使用してみましたが、同じ問題がありました。重複した挿入は変更として扱われます。

一連の挿入を にマージし、DataSet重複した PK をupdateではなくエラーとして処理する方法はありますか?


同様に、変更された DataRows は元の値を記憶しているため、元の値がターゲット行の現在の値と一致しない変更された行をマージすると、例外もスローされることを願っています。

4

1 に答える 1

0

この目的で Unique フラグを使用していませんか? 私の理解では、マージの場合、主キーに基づいて行がマージされます。

于 2013-08-16T05:34:20.413 に答える