【转】sqlbulkcopy 大批量数据插入神器

public static void SqlBulkCopyDemo()
        {
            String connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();
            //从数据库中获得表结构和数据
            DataTable student = new DataTable();
            SqlDataAdapter adapter = new SqlDataAdapter("select * from student", connStr);
            adapter.Fill(student);
            //向表中添加数据            DataRow dr;
            Random r = new Random();
            Stopwatch st = new Stopwatch();
            for(int i = 0; i<1000000; i++)//一百万条数据            {//数据表中的列:name,no,age,sex
                dr = student.NewRow();
                dr[0] = "小花" + i;
                dr[1] = 108 + i;
                dr[2] = r.Next(9, 40);//这里是因为数据表中有约束,
                dr[3] = (i % 2 == 0 ? "男" : "女");//这个也是有约束
                student.Rows.Add(dr);
            }
            SqlBulkCopy bulk = new SqlBulkCopy(connStr);
            bulk.DestinationTableName = "student";//设置目标表,这里是数据库中的student表
            bulk.ColumnMappings.Add(0, 0);//建立映射关系
            bulk.ColumnMappings.Add(1, 1);
            bulk.ColumnMappings.Add(2, 2);
            bulk.ColumnMappings.Add(3, 3);
            st.Start();//开始计时
            bulk.WriteToServer(student.GetChanges());
            st.Stop();//结束计时
            Console.WriteLine("数据插入成功,耗时为:" + st.ElapsedMilliseconds + "毫秒");
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值