您的位置:首页 > 数据库

【转】C#批量导入数据到sqlserver

2010-12-31 01:02 393 查看
在各类程序中经常碰到大批量数据要导入SqlServer的情况。使用循环数据集用INSERT插入数据库,当数据量比较小时,采用这样的办法还可以,但是当数据量在1000以上时,再用INSERT来一条一条插入数据库那么,效率是在是太低 ,其实MS早就替我们想到了,那么下面让我们用一段代码来讲解把。

代码

using System;
using System.Collections.Generic;
using System.Data;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Logging;
using System.Threading;

namespace InternetLogExport
{
class DataProcessing
{
/// <summary>
/// 将抓取的Mysql数据导入Sqlserver
/// </summary>
/// <param name="sqldb">数据集</param>
public bool InsertSqlServer(DataTable sqldb)
{
try
{
//数据批量导入sqlserver,创建实例
System.Data.SqlClient.SqlBulkCopy sqlbulk = new System.Data.SqlClient.SqlBulkCopy(System.Configuration.ConfigurationManager.ConnectionStrings["wwwConn"].ToString());
//目标数据库表名
sqlbulk.DestinationTableName = "t_rz";
//数据集字段索引与数据库字段索引映射
sqlbulk.ColumnMappings.Add(0, 5);
sqlbulk.ColumnMappings.Add(1, 4);
sqlbulk.ColumnMappings.Add(2, 7);
sqlbulk.ColumnMappings.Add(3, 1);
sqlbulk.ColumnMappings.Add(4, 10);
sqlbulk.ColumnMappings.Add(5, 6);
sqlbulk.ColumnMappings.Add(6, 2);
//导入
sqlbulk.WriteToServer(sqldb);
sqlbulk.Close();
return true;
}
catch
{
return false;
}

}


这是我的程序中的一段代码,是从MySql抓取数据然后导入SqlServer。每次抓取的数据一般都在2000-3000左右,用这样的方法每次导入SqlServer只需要2-3秒即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: