zoukankan      html  css  js  c++  java
  • SqlBulkCopy批量插入数据神器

    1.简单例子

        class Program
        {
            static void Main(string[] args)
            {
                Stopwatch sw = new Stopwatch();
                DataTable dt = GetTableSchema();
                for (int i = 0; i < 100000; i++)
                {
                    DataRow r = dt.NewRow();
                    //0行未自增列,为空就好
                    r[1] = i;
                    r[2] = string.Format("User-{0}", i);
                    r[3] = (decimal)i;
                    r[4] = DateTime.Now;
                    r[5] = i;
                    r[6] = string.Format("remak-{0}", i);
                    r[7] = 1;
                    r[8] = true;
                    dt.Rows.Add(r);
                }
                sw.Start();
                BulkToDB(dt);
                sw.Stop();
                Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds));
                Console.ReadLine();
            }
    
            public static void BulkToDB(DataTable dt)
            {
                SqlConnection sqlConn = new SqlConnection(
                    ConfigurationManager.ConnectionStrings["wolfTest"].ConnectionString);
                SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
                bulkCopy.DestinationTableName = "wolf_example";
                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();
                }
            }
    
            public static DataTable GetTableSchema()
            {
                DataTable dt = new DataTable();
                dt.Columns.AddRange(new DataColumn[]{
                    new DataColumn("Num",typeof(int)),
                    new DataColumn("Type",typeof(int)),
                    new DataColumn("Name",typeof(string)),
                    new DataColumn("Money",typeof(decimal)),
                    new DataColumn("CTime",typeof(DateTime)),
                    new DataColumn("UserID",typeof(int)),
                    new DataColumn("Remak",typeof(string)),
                    new DataColumn("Sex",typeof(int)),
                    new DataColumn("IsShow",typeof(bool)),
                });
    
                return dt;
            }
    
        }
  • 相关阅读:
    前端
    前端
    数据库
    代码块
    装饰器
    函数 初识函数
    相识python --------文件操作
    相识python --------str字符串 int整形 bool布尔值 tu元祖 set()集合 dict 字典的数据补充
    【openstack报错】【因更新包而致】IncompatibleObjectVersion: Version 1.9 of Instance is not supported
    开博第一篇
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/7989211.html
Copyright © 2011-2022 走看看