我有一个数据库表如下:
id min max
---------------------
1 0 20
2 21 30
3 31 40
我在网格视图(asp.net)中显示此表,用户可以在其中插入新行,更新现有行并删除任何行。这是我存储在数据表中的所有操作。
更新,插入,删除记录后,当用户希望保存时,他或她按下保存按钮,这个修改过的数据表保存在数据库中(我填写网格视图的同一个表)。要更新数据库,我使用的是OracleBulkCopy
类。
现在的问题是,当我将数据表更新到数据库时,它正在重复已经存在的行。例如,如果我在网格视图中对上表进行了更改并将其更新到数据库中,那么:
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);