大数据插入类-System.Data.SqlClient.SqlBulkCopy

System.Data.SqlClient.SqlBulkCopy类,让大数量插入到MSSQL数据库中可以很快搞定。

项目中一个表100W条数据,普通SQL插入语句,花了10多分钟。

使用System.Data.SqlClient.SqlBulkCopy插入,只用了几秒钟。

下面是主要的代码:

  1. //省略连接字符串
  2. SqlConnection conn = new SqlConnection(".....");
  3. conn.Open();
  4. //初始化类
  5. using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))
  6. {
  7. //获取需要导入的数据表
  8. DataTable dt = GetDataTable();
  9. //每10W条数据一个事物
  10. sqlBC.BatchSize = 100000;
  11. //超时时间
  12. sqlBC.BulkCopyTimeout = 60;
  13. //表名Users
  14. sqlBC.DestinationTableName = "dbo.Users";
  15. //字段对应,分表为原数据表字段名,和导入数据库的字段名
  16. sqlBC.ColumnMappings.Add("Access_ID", "MSSQL_ID");
  17. sqlBC.ColumnMappings.Add("Access_Name", "MSSQL_Name");
  18. //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");
  19. //sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");
  20. //导入到数据库
  21. sqlBC.WriteToServer(dt);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值