SqlBulkCopy使用

SQLBulkCopy用于批量复制数据。性能优势明显。

使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader实例读取数据(如:SqlDataReader)。

示例:

    //sqlbulkCopy 批量插入数据库
            using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
            {
                //一次批量的插入的数据量
                sqlBC.BatchSize = 10000;
                //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
                sqlBC.BulkCopyTimeout = 60;             
                //设置要批量写入的表
                sqlBC.DestinationTableName = "dbo.tbl_test";

                //自定义的datatable和数据库的字段进行对应
                sqlBC.ColumnMappings.Add("A", "col_A");
                sqlBC.ColumnMappings.Add("B", "col_B");

                //批量写入
                sqlBC.WriteToServer(dt);
            }

 

构造Datatable示例:

 //构造一个Datatable存储将要批量导入的数据
            DataTable dt = new DataTable();
            dt.Columns.Add("A", typeof(string));
            dt.Columns.Add("B", typeof(int));


  DataRow dr = dt.NewRow();
                        dr["A"] ="ddsdafdsfsdafsd";
                        dr["B"] =1;
  dt.Rows.Add(dr);
此条目发表在学习笔记分类目录,贴了, 标签。将固定链接加入收藏夹。

1 则回应给 SqlBulkCopy使用

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据