简单使用:
    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的更多相关文章

  1. .net批量插入SqlServer数据库的方法:

    using System;using System.Collections.Generic;using System.Configuration;using System.Data;using Sys ...

  2. java 高效批量插入 sqlserver 数据库

    插入1000条:347毫秒 插入1W条:4086毫秒 插入10W条:47953毫秒 同理,批量更新也可以用此方法,只不过没有插入的快, 更新1000条:90秒 更新100条:9秒

  3. C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)

      /*_____________________ List<T>类型数据 To Sql_______________________________*/ /// <summary& ...

  4. .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑

    在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...

  5. C#批量将数据插入SQLServer数据库

    Database db = CreateDatabase();                var varConnnection = db.CreateConnection();     //获取连 ...

  6. DataTable 获取列名 DataTable批量更新至数据库

    好久没写东西了,这几个月也没下功夫钻研技术,愧疚啊.说下最近刚学会的DataTable 的用法吧,新手适合看下. 1 DataTable 获取列名 在处理数据的时候大家都会用到模型,从datatabl ...

  7. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  8. MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

    MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...

  9. ASP.NET MVC NPOI导入Excel DataTable批量导入到数据库

    使用NPOI导入Excel 首先在MVC项目中导入NPOI 查询NPOI安装,排序依据,选择:最高下载量,选择第一个. 在控制器中创建ExcelController 在Index视图中写入代码: @u ...

随机推荐

  1. 错误:媒体集有 2 个媒体簇,但只提供了 1 个 sql2005 备份错误。

    错误:媒体集有 2 个媒体簇,但只提供了 1 个 sql2005 2010-10-19 11:44:06|  分类: sql|举报|字号 订阅     ql2005备份的时候,选择备份路径是一方面,但 ...

  2. 自定义iOS7导航栏背景,标题和返回按钮文字颜色

    在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...

  3. 招聘信息:无线产品研发总监 60-100W

    招聘信息:某知名电商公司诚招: 无线产品研发总监 60-100W 招聘人数:1名 岗位描述: 熟悉互联网产品业务流程,完成产品功能的概念设计个原型展示: 进行市场调查和分析,相关用户研究和信息整理,提 ...

  4. URL重写 urlrouting

    在global文件中添加以下的代码 <%@ Import Namespace="System.Web.Routing" %> <script RunAt=&quo ...

  5. 图表控件FlowChart.NET详细介绍及免费下载地址

    FlowChart.NET是一款专业的.NET平台下的流程图及图表控件,它可以运行在任何C#, VB.NET或Delphi.NET语言编写的软件中.能够帮助你创建工作流程图.对象层次和关系图.网络拓扑 ...

  6. Session Tracking Approaches

    cookies url rewriting hidden field see also: http://www.informit.com/articles/article.aspx?p=29817&a ...

  7. Spring的依赖注入怎么理解

    先看一段代码假设你编写了两个类,一个是人(Person),一个是手机(Mobile). 人有时候需要用手机打电话,需要用到手机的dialUp方法. 传统的写法是这样: Java code public ...

  8. POJ 2481-树状数组

    题意:给定几个区间,判断该区间是其余区间的真子集个数. 分析:真子集即寻找x,y满足a(小于或等于x),b(大于或等于y)的区间.跟star-POJ2352很类似. 转化:star那个题目是x,y都是 ...

  9. Node黑客开发的10个好习惯(2016)

    在2015年底之际,javascript开发者已经掌握了大量的工具.最后一次我们调查的时候,现代化的JS蓝图才刚刚出现.今天,我们很容易在JS的庞大生态系统中迷失,而成功的团队大部分时间都遵守着JS开 ...

  10. Ansible-Tower快速入门-7.配置实时事件【翻译】

    配置实时事件 在tower的菜单中,在接近用户菜单处有一个带有颜色的小点,这个带颜色的小点显示tower的实时事件功能的状态 如果这个小点是绿色的,表示运行正常,如果这个小点是红色或橙色,表示实时事件 ...