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

来源:互联网 发布:上海java应届生招聘 编辑:程序博客网 时间:2024/05/16 12:29

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);
原创粉丝点击