У меня есть таблица базы данных следующим образом:
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);