次のように私はdatatabaseテーブルを持っている:のOracle一括コピー重複行
id min max
---------------------
1 0 20
2 21 30
3 31 40
ユーザーは、新しい行を挿入し、既存の更新し、任意の行を削除することができますどこ私は、グリッドビュー(asp.net)でこの表を示しています。これは私がデータテーブルに格納しているすべての操作です。 レコードを更新、挿入、削除した後、保存したいときに保存ボタンを押すと、この変更されたデータテーブルがデータベースに保存されます。データベースを更新するには、OracleBulkCopy
クラスを使用しています。 問題は、すでに存在する行を繰り返すデータベースにdatatableを更新しているときです。たとえば、上記のテーブルをグリッドビューで変更してデータベースに更新した場合:
id min max
------------------
1 0 20
2 21 30
3 31 40
1 0 20
2 21 35 (updated)
3 31 40
4 41 60 (newly inserted)
私はこの繰り返しは望ましくありません。ここid
は、主キー であると私はOracleBulkCopy
次のコードを試してみました:
Oracle.DataAccess.Client.OracleBulkCopy oracleBulkCopy = new Oracle.DataAccess.Client.OracleBulkCopy(DM.ConnectionString, Oracle.DataAccess.Client.OracleBulkCopyOptions.UseInternalTransaction);
oracleBulkCopy.DestinationTableName = "RANGE";
oracleBulkCopy.WriteToServer(dataTable);
この「回避策」は宿題では十分かもしれませんが、実際のアプリケーションではパフォーマンスに問題があります。 – APC
@APCあなたは何をお勧めしますか? – alwaysVBNET