SqlBulkCopy实现大量数据写入SQLserver数据库 采集数据 思路
SqlBulkCopy实现大量数据写入SQLserver数据库
///connectionString:连接SQLserver数据库字符串
///TableName:目标表名
///dt需要导入的数据(DataTable类)
引入 超级无敌Button
1 public void SqlBulkCopyByDatatable(string ConnectionString, string TableName, DataTable dt) 2 { 3 using (SqlConnection conn = new SqlConnection(connectionString)) 4 { 5 using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) 6 { 7 try 8 { 9 sqlbulkcopy.DestinationTableName = TableName; 10 for (int i = 0; i < dt.Columns.Count; i++) 11 { 12 sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); 13 } 14 sqlbulkcopy.WriteToServer(dt); 15 } 16 catch (System.Exception ex) 17 { 18 throw ex; 19 } 20 } 21 } 22 }
copy 数据蛮快滴,但是出现了一个问题,会插入重复的记录,我用的定时器,每间隔一个1小时,就复制上一个小时所有的记录。

此记录完全一样,删除都不好删除,可以先用 以下语句先更新,然后再删除其中重复的数据。
update top (1) sjcl_gp_main set FactoryName='123' where gpbh='GP20230308216'
先测试运行一段时间 ,在看看有没有重复的情况吧
彪悍的人生不解释
彪悍的代码不注释

浙公网安备 33010602011771号