我正面临一个问题,希望能在这里得到解决。我在DataSet
中有3个不同的表,我想将它插入数据库表中。
我知道我可以使用SqlBulkCopy
执行此操作但是有一个问题,我想检查数据是否已存在于数据库中,然后我希望它更新而不是插入。
如果数据库中没有数据,那么我想插入它。任何有关这方面的帮助将不胜感激。
我知道我可以通过每个记录迭代它然后触发一个程序,如果它存在den更新或者插入,它将检查它的存在。但是数据量很大,每次记录的迭代都是一个耗时的过程,我不想使用这种方法。
此致
答案 0 :(得分:0)
免责声明:我是该项目的所有者Bulk Operations
此项目允许BulkInsert,BulkUpdate,BulkDelete和BulkMerge(Upsert)。
在幕后,它几乎完成@marc_s建议的内容(将SqlBulkCopy用于临时表并执行合并语句以根据主键插入或更新)。
var bulk = new BulkOperation(connection);
bulk.BulkMerge(dt);