DataTable 批量插入SqlServer数据库 使用:SqlBulkCopy
简单使用:
private void UpdateTitle(DataTable dt)
{ if (dt != null && dt.Rows.Count > )
{
using (SqlBulkCopy sbc = new SqlBulkCopy(SqlHelper.connectionString))
{
sbc.BatchSize = dt.Rows.Count;//每批次操作数量
sbc.BulkCopyTimeout = ;//操作允许的超时时间 单位:秒 (超时则事务不提交)
sbc.DestinationTableName = "TB_product_NewTitle"; //数据库对应表名
sbc.WriteToServer(dt);
}
}
}
如果出现 DataTable中的字段和数据库的字段不对应的异常信息,需要手动的为DataTable的列 和 数据库中的列 绑定
注意:dataColumns的数据类型,一定要和数据库一样,不然各种报错
字段也区分大小写,一定要注意 /// <summary>
/// 批量更新数据到数据库(DataTable列结构保持和数据库表一致)
/// </summary>
/// <param name="dt"></param>
public static void BulkCopyData(Queue<QueueMessage> myQ, int SiteID,int max)
{
if (myQ != null && myQ.Count > )
{
using (SqlBulkCopy sbc = new SqlBulkCopy(SqlHelper.con))
{
QueueMessage qm = new QueueMessage();
DataTable dt = new DataTable();
dt.Columns.AddRange(
new DataColumn[] {
new DataColumn("Sender", typeof(Int32)),
new DataColumn("Receiver", typeof(Int32)),
new DataColumn("Content", typeof(string)),
new DataColumn("CreateTime", typeof(DateTime)),
new DataColumn("SenderType", typeof(int))
});
int qcount=;
if (max > )
qcount = max;
else
qcount = myQ.Count();
for (int i = ; i < qcount; i++)
{
qm = myQ.Dequeue() as QueueMessage;
DataRow dr = dt.NewRow();
dr["Sender"] = qm.Sender;
dr["Receiver"] = qm.Receiver;
dr["Content"] = qm.Content;
dr["CreateTime"] = qm.CreateTime;
dr["SenderType"] = qm.SenderType;
dt.Rows.Add(dr);
}
//把DataTable的列名和数据库的列名绑定
sbc.ColumnMappings.Add("Sender", "Sender");
sbc.ColumnMappings.Add("Receiver", "Receiver");
sbc.ColumnMappings.Add("Content", "Content");
sbc.ColumnMappings.Add("CreateTime", "CreateTime");
sbc.ColumnMappings.Add("SenderType", "SenderType");
sbc.BatchSize = dt.Rows.Count;//每批次操作数量
sbc.BulkCopyTimeout = ;//操作允许的超时时间 单位:秒 (超时则事务不提交)
sbc.DestinationTableName = "TB_Message_" + SiteID;//数据库对应表名
sbc.WriteToServer(dt);
}
}
}
DataTable 批量插入SqlServer数据库 使用:SqlBulkCopy的更多相关文章
- .net批量插入SqlServer数据库的方法:
using System;using System.Collections.Generic;using System.Configuration;using System.Data;using Sys ...
- java 高效批量插入 sqlserver 数据库
插入1000条:347毫秒 插入1W条:4086毫秒 插入10W条:47953毫秒 同理,批量更新也可以用此方法,只不过没有插入的快, 更新1000条:90秒 更新100条:9秒
- C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)
/*_____________________ List<T>类型数据 To Sql_______________________________*/ /// <summary& ...
- .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑
在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...
- C#批量将数据插入SQLServer数据库
Database db = CreateDatabase(); var varConnnection = db.CreateConnection(); //获取连 ...
- DataTable 获取列名 DataTable批量更新至数据库
好久没写东西了,这几个月也没下功夫钻研技术,愧疚啊.说下最近刚学会的DataTable 的用法吧,新手适合看下. 1 DataTable 获取列名 在处理数据的时候大家都会用到模型,从datatabl ...
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...
- MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)
MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...
- ASP.NET MVC NPOI导入Excel DataTable批量导入到数据库
使用NPOI导入Excel 首先在MVC项目中导入NPOI 查询NPOI安装,排序依据,选择:最高下载量,选择第一个. 在控制器中创建ExcelController 在Index视图中写入代码: @u ...
随机推荐
- 关于ios “<null>”的异常处理
在iOS开发过程中经常需要与服务器进行数据通讯,但是在数据接通过程中会出现:null "<null>"等问题导致莫名其妙的崩溃. 相信你一定会写各种判断来处理这些异常, ...
- C++中explicit关键字的使用
看书看到了explicit关键字,就来做个笔记,讲得比较明白,比较浅. 在C++中,我们有时可以将构造函数用作自动类型转换函数.但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++ ...
- Servlet向客户端发送中文数据的编码情况
(更多内容请关注本人微信订阅号:it_pupil) 本文讲述服务端servlet向客户端浏览器发送中文数据的编码情况,需要抓住下面几点: 输出流发送数据,必须是以字节形式传输的.也就是说,如果你在服务 ...
- C#给DataTable添加序号、C#给DataTable添加合计、小计
/// <summary> /// 给DataTable添加序号 /// </summary> /// <param name= ...
- 【LeetCode】Sort Colors
Sort Colors Given an array with n objects colored red, white or blue, sort them so that objects of t ...
- 如何开发H5项目 -- 入门篇
前言 H5即HTML5,H5开发具有低成本.高效率.跨平台.研发周期短,用户接触成本低等特性. 一.开发环境 在开发一个H5项目之前,需要先搞好环境.主要有node.npm.gulp.bower.下面 ...
- Kmeans++算是DONet实现
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Java(四)
下面的代码可以实现以字节为单位复制文件的功能,适合复制非文本类型的文件,为了更清楚的观测运行速率,我加入了程序计时器,代码如下: import java.io.FileInputStream; imp ...
- Pyhon环境搭建-window
1.安装python3.4.3版本 地址:(64位)https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi (32位)http:/ ...
- 多表关联 update
UPDATE t_invests INNER JOIN t_user_coupons ON t_invests.user_coupon_id = t_user_coupons.id SET t_inv ...