C#实现大批量转移数据到SQl SERVER DB.
来源:互联网 发布:linux查询用户所属组 编辑:程序博客网 时间:2024/06/05 17:01
工作中接到一个需求.要将一个数据源中大量数据转移到另外一个SQL SERVER数据库的表中.
这次的方案是开发一个应用程序做中转,应用程序先得到数据源的数据,再将得到的数据集插入到目标数据库中.
得到数据集很简单,重点在于把本地数据集的数据转移到目标数据库里.我用了两种方法分别实现了这项功能.
1. 用SQLCOMMAND逐条将数据集的ROW插入到目标表里.这种方式费时费力而且效率很低. 执行一次大概5000行的插入动作大概须要1分钟左右.
2. 利用ADO.Net 2.0新提供的SqlBulkCopy类编写自己的大量复制过程. 这个类可完成以下操作:
a) 单次大量复制操作.
b) 多次大量复制操作.
C)在事务中执行大量复制操作.
具体的实例代码如下.
StringdistinctionTableName=”ReportTable”;
using(SqlBulkCopybcp=new SqlBulkCopy(tempConnector.OpenDataBase()))
//sqlConnecter是到目标数据库的连接.
{
bcp.DestinationTableName = distinctionTableName; // distinctionTableName是目标数据库的表名称.
bcp.BulkCopyTimeout = 120000;
bcp.BatchSize = 10000;
bcp.WriteToServer(tempDS.Tables["valueTable"]);//tempDS.Tables["valueTable]是已经得到的本地数据集.
Debug.WriteLine("inserted" + bcp.NotifyAfter.ToString() + "rows" );
bcp.Close();
}
实现的代码很少而且执行效率非常高.同样执行一次5000行的插入动作只须不到5秒的时间.
有关SqlBulkCopy类的详细定义.参考http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
- C#实现大批量转移数据到SQl SERVER DB.
- 将mysql数据库数据转移到sql server 2008
- SQL SERVER 2008 大批量数据的导入
- c# 大批量数据导出到excel
- c# 大批量数据导出到excel[1]
- Sql Server查询远程db 表数据到本地
- Sql Server查询远程db 表数据到本地
- 大批量数据导出到Excel的实现
- C#读取excel数据到SQL server
- sql server 2008 把远程的数据库的数据转移到本地数据数据库里
- c#大批量数据插入
- SQL SERVER定期转移海量数据方案
- SQL SERVER定期转移海量数据方案
- SQL SERVER定期转移海量数据方案
- sql server 跨数据库完成数据转移
- sql server insert into 表数据转移
- 由SQL Server 2005大批量数据操作想起的
- sql server大批量导出数据(学习日记)
- 一丝不挂
- 什么是一个表的外键 他和主键有什么区别吗
- 支付1000元咨询费,如何让PB编写的程序不能被反编译?
- 解释性语言
- 【算法】内外网数据发布的设计思路
- C#实现大批量转移数据到SQl SERVER DB.
- 疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 角色权限
- Windows XP 下oracle的完全卸载
- FormBuilder
- POJ 2244 约瑟夫问题的变形 已知最后胜利者逆推模拟
- 疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 操作权限
- 在VC中使用XP样式
- 类QQ截图的JS实现
- Spring的方法替换例子