【Update】C# 批量插入数据 SqlBulkCopy

SqlBulkCopy的原理就是通过在客户端把数据都缓存在table中,然后利用SqlBulkCopy一次性把table中的数据插入到数据库中。

    SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);  
    SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);  
    bulkCopy.DestinationTableName = "BulkTestTable";  
    bulkCopy.BatchSize = dt.Rows.Count;  
  
    try  
    {  
        sqlConn.Open();  
    if (dt != null && dt.Rows.Count != 0)  
        bulkCopy.WriteToServer(dt);  
    }  
    catch (Exception ex)  
    {  
        throw ex;  
    }  
    finally  
    {  
        sqlConn.Close();  
        if (bulkCopy != null)  
            bulkCopy.Close();  
    }  

补充一下:
SqlBulkCopy的ColumnMappings中列的名称受大小写敏感限制,在构造DataTable的时候需要注意列名要与表一致。
关于sqlbulkcopy的事务处理,使用事务在性能上会有一定的影响,如果要使用事务,可以设置SqlBulkCopyOptions.UseInternalTransaction。

###############################
Living An Awesome Life! RobinJiang
###############################
原文地址:https://www.cnblogs.com/RobinJiang/p/SqlBulkCopy.html