博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlBulkCopy大批量导入数据
阅读量:5293 次
发布时间:2019-06-14

本文共 1069 字,大约阅读时间需要 3 分钟。

        //构造一个Datatable存储将要批量导入的数据

        DataTable dt = new DataTable();
        dt.Columns.Add("id", typeof(string));
        dt.Columns.Add("name", typeof(string));

        // 见识下SqlBulkCopy强悍之处,来个十万条数数据试验

        int i;
        for (i = 0; i < 100000; i++)
        {
            DataRow dr = dt.NewRow();
            dr["name"] = i.ToString();
            dt.Rows.Add(dr);
        }

        string str = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString.ToString();

        //声明数据库连接
        SqlConnection conn = new SqlConnection(str);

        conn.Open();

        //声明SqlBulkCopy ,using释放非托管资源
        using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
        {
            //一次批量的插入的数据量
            sqlBC.BatchSize = 1000;
            //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
            sqlBC.BulkCopyTimeout = 60;

            //設定 NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。 

            sqlBC.NotifyAfter = 10000;
            sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);

            //设置要批量写入的表

            sqlBC.DestinationTableName = "dbo.text";

            //自定义的datatable和数据库的字段进行对应

            sqlBC.ColumnMappings.Add("id", "tel");
            sqlBC.ColumnMappings.Add("name", "neirong");

            //批量写入

            sqlBC.WriteToServer(dt);
        }
        conn.Dispose();

转载于:https://www.cnblogs.com/Granddy2011/archive/2013/01/19/2867138.html

你可能感兴趣的文章
保险配置
查看>>
【高并发解决方案】2、集群概述
查看>>
Mysql-SqlServer区别
查看>>
QTP的DataTable操作
查看>>
STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例
查看>>
时间复杂度和空间复杂度
查看>>
day05
查看>>
hdu 5691(状压DP) Sitting in Line
查看>>
运输层7——TCP的流量控制和拥塞控制
查看>>
Android之MVC模式的使用
查看>>
【UVa】387 A Puzzling Problem
查看>>
Python 内置函数 range的使用
查看>>
Objective-C 类型编码(图)
查看>>
Nginx 的多站点配置
查看>>
php 数据导出到excel 2种带有合并单元格的导出
查看>>
Leetcode 33.搜索旋转排序数组
查看>>
Leetcode 215.数组中的第k个最大元素
查看>>
【转】Android通过JNI调用驱动程序(完全解析实例)
查看>>
【转】IOS 怎么获取外设的广播数据AdvData
查看>>
mysql中使用MySqlParameter操作数据库
查看>>