使用SqlBulkCopy类批量复制大数据
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics; namespace SqlBulkCopy1
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
for (int multiply = ; multiply < ; multiply++)
{
DataTable dt = GetTableSchema();
for (int count = multiply * ; count < (multiply + ) * ; count++)
{
DataRow r = dt.NewRow();
r[] = count;
r[] = string.Format("username-{0}", count * multiply);
r[] = string.Format("userpwd-{0}", count * multiply);
r[] = string.Format("address-{0}", count * multiply);
dt.Rows.Add(r);
}
sw.Start();
BulkToDB(dt);
sw.Stop();
Console.WriteLine(string.Format("已消耗时间{0}毫秒", sw.ElapsedMilliseconds));
}
Console.ReadLine();
}
public static void BulkToDB(DataTable dt)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlConnString"].ConnectionString);
SqlBulkCopy bulkCopy = new SqlBulkCopy(con);
bulkCopy.DestinationTableName = "USERINFO";
bulkCopy.BatchSize = dt.Rows.Count;
try
{
con.Open();
if (dt != null && dt.Rows.Count != )
bulkCopy.WriteToServer(dt);
}
catch (Exception)
{ throw;
}
} public static DataTable GetTableSchema()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("id",typeof(int)),
new DataColumn("username",typeof(string)),
new DataColumn("userpwd",typeof(string)),
new DataColumn("address",typeof(string))
});
return dt;
}
}
}
100W条数据消耗时间:

使用SqlBulkCopy类批量复制大数据的更多相关文章
- C# 使用SqlBulkCopy类批量复制大数据
用途说明: 前些日子,公司要求做一个数据导入程序,要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储.于是在网上进行查找,发现了一个比较好的解决方案,就是采用S ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
- 用.net中的SqlBulkCopy类批量复制数据 (转载)
在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用. 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据. .NET 2.0有一个SqlBulkC ...
- 使用asp.net 2.0中的SqlBulkCopy类批量复制数据
介绍:在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用. 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据. ASP.NET 2.0有一个Sq ...
- C# 使用 SqlBulkCopy 类批量复制数据到数据库
最近公司需要优化导入的问题,由于之前使用的方式是生成 Insert 语句插入数据库,数据量小的时候还行,但是随着发展数据量渐渐大了,之前的方法性能就跟不上了,于是发现了 SqlBulkCopy 这个类 ...
- 使用SQL语句的子查询批量复制表数据
批量复制表数据这里有两种方法,下面分别来介绍这两种方法: 一.手动创建新表,然后复制数据 如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本: 然后在脚本中改改表名就可以了, ...
- C# SqlBulkCopy类批量导入数据
特别注意 sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); 插入的时候列的顺序可 ...
- C# SqlBulkCopy类批量导入 测试
一.功能说明 1.可以选择,只导入部分列,或者导入全部列. 2.导入速度的确比一般sql要快. 3.不用写sql语句 ----------------------------------------- ...
- mysql+php+pdo批量添加大数据
1.使用insert into插入 ini_set('max_execution_time','0');//限制超时时间,因为第一种时间较长,索性设为0不限制 $pdo = new PDO(" ...
随机推荐
- After Android Studio update: Gradle DSL method not found: 'runProguard()'
1 具体报错为: Error:(16, 0) Gradle DSL method not found: 'runProguard()' Possible causes:<ul><li ...
- DNS服务未响应的简单解决办法
今天晚上下班回家,打开电脑,发现打不开网页了,同一个wifi环境下,我的手机是可以连接上的,网上搜了一大推,又是重启服务,又是重新填写dns服务地址,都不管用, 该怎么办呢??. 其实发现很简单,打开 ...
- C++ “读取位置 0x****** 时发生访问冲突”的可能原因
转自:http://shansun123.iteye.com/blog/680066 这种错误的意思一般是指访问了不属于自己的内存空间,出现这种错误有几种原因: 1.给一个数组分配了比较小的内存空间, ...
- Spring Quartz结合Spring mail定期发送邮件
文件配置例如以下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- hdu 5442 Favorite Donut 后缀数组
Favorite Donut Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid ...
- ios开发——实用技术篇Swift&Swift调用C、C++、Object
Swift调用C.C++.Object 1.Swift调用C语言a,首先在项目中添加 CFile 文件命名为CHello,同时产生桥梁文件. b,创建之后的项目结构 b,在CHello.h文件中编写接 ...
- android学习日记24--Android 菜单开发
菜单是任何应用程序必不可少的一项.按下Menu键或者长按某个View就会弹出相应菜单,当然前提是应用程序有实现菜单功能. Android平台下的菜单有:Options Menu(选项菜单).Subme ...
- 360开源的类Redis存储系统:Pika
Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika.有维护 Redis 经验的 DBA 维护 ...
- break和continue语句
跳转语句中断当前的执行过程,C++语言提供了4中跳转语句:break.continue.goto和return. break语句 break语句负责终止离他最近的while.do while.for或 ...
- android中3种实现动画效果的方法
3中实现动画的方法:ImageView imgView = (ImageView)findViewById(R.id.imageView_logo); //第一种动画方法,使用AlphaAnimati ...