将整个DataTable插入/更新到数据库表C#

时间:2016-04-27 06:12:53

标签: c# sql-server sqlbulkcopy

我正面临一个问题,希望能在这里得到解决。我在DataSet中有3个不同的表,我想将它插入数据库表中。

我知道我可以使用SqlBulkCopy执行此操作但是有一个问题,我想检查数据是否已存在于数据库中,然后我希望它更新而不是插入。

如果数据库中没有数据,那么我想插入它。任何有关这方面的帮助将不胜感激。

我知道我可以通过每个记录迭代它然后触发一个程序,如果它存在den更新或者插入,它将检查它的存在。但是数据量很大,每次记录的迭代都是一个耗时的过程,我不想使用这种方法。

此致

1 个答案:

答案 0 :(得分:0)

免责声明:我是该项目的所有者Bulk Operations

此项目允许BulkInsert,BulkUpdate,BulkDelete和BulkMerge(Upsert)。

在幕后,它几乎完成@marc_s建议的内容(将SqlBulkCopy用于临时表并执行合并语句以根据主键插入或更新)。

var bulk = new BulkOperation(connection);
bulk.BulkMerge(dt);