.net 使用SqlBulkCopy批量插入数据库
2024-08-23 08:51:36
//一次批量插入100W条数据到数据库
static void Main(string[] args)
{
System.Random a = new Random(System.DateTime.Now.Millisecond);
Stopwatch sw = new Stopwatch();
DataTable dt = GetTableSchema();
for (int count = 0; count < 1000000; count++)
{
DataRow r = dt.NewRow();
r[0] = Guid.NewGuid().ToString();
r[1] = 100;
r[2] = "ABCD";
r[3] = a.Next().ToString();
r[4] = count;
r[5] = DateTime.Now;
r[6] = false;
dt.Rows.Add(r);
}
sw.Start();
BulkToDB(dt);
sw.Stop();
Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds));
Console.ReadLine();
} public static DataTable GetTableSchema()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]{
new DataColumn("UserCode",typeof(string)),
new DataColumn("key1",typeof(int)),
new DataColumn("key2",typeof(string)),
new DataColumn("UserName",typeof(string)),
new DataColumn("Age",typeof(int)),
new DataColumn("CreateTime",typeof(DateTime)),
new DataColumn("IsDeleted",typeof(bool))
});
return dt;
} public static void BulkToDB(DataTable dt)
{
SqlConnection sqlConn = new SqlConnection("Server=localhost;database=TestDB;User ID=sa;Password=123456;");
SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
bulkCopy.DestinationTableName = "Users";
bulkCopy.BatchSize = dt.Rows.Count;
try
{
sqlConn.Open();
if (dt != null && dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
}
最新文章
- wamp2.5 配置多端口虚拟主机
- php知识案列
- python开发_++i,i += 1的区分
- 【转】使用Apache Kylin搭建企业级开源大数据分析平台
- vs2013-tfs-疑问之版本控制器路径有双引号解决办法
- 【iOS】Foundation框架 学习笔记
- Growing转化的每一步(笔记整理)
- Python Tool Visual Studio简单使用
- Codeforces Round #240 (Div. 2)->;A. Mashmokh and Lights
- PHP输出图片文件,实现浏览器缓存机制
- .net三步配置错误页面,让你的站点远离不和谐的页面
- jsp发布后应用根目录
- VMware Workstation 12 Pro 之安装林耐斯-LinuxMint-系统
- 爬取朋友圈,Get年度关键词
- Android开源项目——带图标文字的底部导航栏IconTabPageIndicator
- bzoj4671: 异或图——斯特林反演
- kaldi的TIMIT实例一
- Vim 多行剪切、复制和删除
- [k8s]nginx-ingress配置4/7层测试
- 20135234mqy-——信息安全系统设计基础第十周学习总结
热门文章
- Spring不能直接@autowired注入Static变量
- 【Beta】Scrum meeting 10
- Anaconda更新失败简单解决[CondaHTTPError: HTTP 000 CONNECTION FAILED for url]
- ubuntu16.04 overlay 不支持redirect_dir开关
- Java的面向对象的原则
- python万能消费框架,新增7种中间件(或操作mq的包)和三种并发模式。
- 【HBase】HBase 单机版安装及使用
- 退出Vim编辑器
- 在OpenShift 3.11环境开启多网络平面
- 安装 python 爬虫框架 Scrapy