您的位置:首页 > 大数据

大数据插入类-System.Data.SqlClient.SqlBulkCopy

2010-05-08 23:10 453 查看
上个项目中开发中有个数据同步功能,我需要插入大量数据,网上查资料,发现微软提供了一个System.Data.SqlClient.SqlBulkCopy累,让大数量插入到MSSQL数据库中可以很快搞定。

项目中一个表100W条数据,普通SQL插入语句,花了10多分钟。

使用System.Data.SqlClient.SqlBulkCopy插入,只用了几秒钟。

下面是主要的代码:

//省略连接字符串
SqlConnection conn = new SqlConnection(".....");
conn.Open();
//初始化类
using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))
{
//获取需要导入的数据表
DataTable dt = GetDataTable();

//每10W条数据一个事物
sqlBC.BatchSize = 100000;

//超时时间
sqlBC.BulkCopyTimeout = 60;

//表名Users
sqlBC.DestinationTableName = "dbo.Users";

//字段对应,分表为原数据表字段名,和导入数据库的字段名
sqlBC.ColumnMappings.Add("Access_ID", "MSSQL_ID");
sqlBC.ColumnMappings.Add("Access_Name", "MSSQL_Name");
//sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");
//sqlBC.ColumnMappings.Add("Access_...", "MSSQL_...");

//导入到数据库
sqlBC.WriteToServer(dt);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: