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'
View Code

先测试运行一段时间 ,在看看有没有重复的情况吧

 

posted @ 2023-03-09 09:59  男人要爽  阅读(128)  评论(0)    收藏  举报