zoukankan      html  css  js  c++  java
  • SqlBulkCopy 批量插入

    /// <summary>
            /// 批量插入数据
            /// </summary>
            /// <param name="pConnectstring"></param>
            /// <param name="dt"></param>
            /// <param name="tablename"></param>
            public static void BulkCopy(string pConnectstring, DataTable dt, string tablename, int pBatchSize = 10000)
            {
                Console.WriteLine("使用Bulk插入的实现方式");
                Stopwatch sw = new Stopwatch();//测量运行时间
    
                using (SqlConnection conn = new SqlConnection(pConnectstring))
                {
                    SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);
                    bulkCopy.DestinationTableName = tablename;//表名
                    bulkCopy.BatchSize = pBatchSize;//SqlBulkCopy.BatchSize=10*10000 时候的效率最高~  数据一百W为例
                    //bulkCopy.SqlRowsCopied += BulkCopy_SqlRowsCopied;
                    conn.Open();
                    sw.Start();
    
                    if (dt != null && dt.Rows.Count != 0)
                    {
                        bulkCopy.WriteToServer(dt);
                        sw.Stop();
                    }
    
                    Console.WriteLine(string.Format("插入{0}条记录共花费{1}毫秒", dt.Rows.Count, sw.ElapsedMilliseconds));
                }
            }

    调用上面方面即可实现SqlBulkCopy 批量插入 

    SqlBulkCopy  优点

           1.效率高

           2.操作简洁

    SqlBulkCopy  注意事项

        1.列的顺序必须和表的顺序一致

           2.插入时做不到添加查重

           3.当表中有自增列时 datatable表中必须含有自增列不用添加值

        

  • 相关阅读:
    Java导出Excel和CSV(简单Demo)
    ffmepg命令行参数
    VLC命令参数(转载)
    深入Java虚拟机读书笔记第五章Java虚拟机
    JS常用方法记录
    记一次数据库的优化
    Infobright数据库使用
    Mysql连接驱动8.0版本改动
    Eclipse新建SrpingBoot项目Pom.xml文件报错
    SpringBoot 热部署开发
  • 原文地址:https://www.cnblogs.com/manwwx129/p/SqlBulkCopy.html
Copyright © 2011-2022 走看看