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

在各类程序中经常碰到大批量数据要导入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秒即可。

posted @ 2010-12-31 01:02  Michael Zhang x  Views(765)  Comments(0Edit  收藏  举报