使用 SqlBulkCopy 批量插入数据
/// <summary>
/// 使用SqlBulkCopy将DataTable中的数据批量插入数据库中
/// </summary>
/// <param name="strTableName">数据库中对应的表名</param>
/// <param name="dtData">数据集</param>
/// <param name="dicFields">中英文对应字典</param>
/// <returns></returns>
public string SqlBulkCopyInsert(string connStr, string strTableName, DataTable dtData, Dictionary<string, string> dicFields = null)
{
try
{
using (SqlBulkCopy sqlCopy = new SqlBulkCopy(connStr))//引用SqlBulkCopy
{
sqlCopy.BulkCopyTimeout = 6000;//6s没有操作完成失败 sqlCopy.DestinationTableName = strTableName;//数据库中对应的表名 foreach (DataColumn item in dtData.Columns)
{
try
{
if (dicFields != null)
{
//映射列头和字段名称
item.ColumnName = dicFields[item.ColumnName.Replace(" ", "")];
}
sqlCopy.ColumnMappings.Add(item.ColumnName, item.ColumnName);
}
catch (Exception ex)
{
NLogHelper.Error("数据字典和字段{" + item.ColumnName + "}不对应!", ex);
}
}
sqlCopy.WriteToServer(dtData);//数据导入数据库 sqlCopy.Close();//关闭连接
}
return null;
}
catch (Exception ex)
{
NLogHelper.Error("批量插入数据出错!", ex);
return ex.Message;
}
}
//映射表头和数据库表字段的关系
public static Dictionary<string, string> dicFields = new Dictionary<string, string>() {
{"型号","Model"},{"品牌","Brand"},{"批号","MakeYear"}
};
使用 SqlBulkCopy 批量插入数据的更多相关文章
- sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下. 其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...
- SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkC ...
- C#中的SqlBulkCopy批量插入数据
在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// < ...
- 用SqlBulkCopy批量插入数据到SqlServer数据库表中
首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using Syst ...
- MSSQL使用sqlbulkcopy批量插入数据
具体代码如下: /// <summary> /// 批量插入数据到BayonetZipFailedPic表 /// </summary> /// <param name= ...
- sqlbulkcopy 批量插入数据
批量插入 Datetable数据 通过sqlbulkcopy 插入1百万条数据 用时 10秒钟 (有兴趣的小伙伴可以去测试) /// <summary> /// /// </sum ...
- c# sqlbulkcopy批量插入数据
dt信息中包含数据和表名 public static void SqlBulkInsert(DataTable dt, string connStr) { try { using (var conn ...
- 使用事务和SqlBulkCopy批量插入数据
SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据有效批量的加载到SQL Server表中的功能 ...
- C#使用SqlTransaction事务回滚与SqlBulkCopy批量插入数据
C#中批量处理数据,有时候因为一条记录导致整个批量处理失败.这时候肯能会导致数据不全等问题,这时候我们可以使用SqlTransaction来进行事务回滚,即是要么全部成功要么全部不成功.如下代码 // ...
随机推荐
- Java面向对象多态
Java面向对象多态 7.2对象 7.2.1创建对象 对象是类的实例 类的名称 对象名称 = new 类的名称(); 7.3继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域 ...
- Java数组数据类型
Java数组数据类型 数组是多个相同类型的数据的组合,数组中的元素可以是任何类型的数据: 一维数组 package com.ahabest.array; public class ArratTest ...
- form:input 标签使用
<form:input path="suplier" htmlEscape="false" maxlength="50" id=&qu ...
- react 子组件给父组件传值
import React from 'react'import '../page1/header.css'import { Table } from 'antd'import Child from ' ...
- kesci---2019大数据挑战赛预选赛---情感分析
一.预选赛题------文本情感分类模型 本预选赛要求选手建立文本情感分类模型,选手用训练好的模型对测试集中的文本情感进行预测,判断其情感为「Negative」或者「Positive」.所提交的结果按 ...
- tp5 微信支付开发流程
1.用户在选择商品后,向APi提交包含它所选择商品的相关信息. 2.APi在接收到信息后,需要检查订单相关商品的库存量. 3.有库存,把订单数据存入数据库中= 下单成功了,返回客户端消息,告诉客户端可 ...
- ganglia问题小结
1.gmetad和rrdtool的关系 gmetad负责将轮询gmond拉取到的数据存入rrdtool的文件中,rrdtool 2.gemtad.conf ①命令:/usr/sbin/gmetad - ...
- 【ACM】NYOJ_486_Old Calculator_20130725
Old Calculator时间限制:1000 ms | 内存限制:65535 KB 难度:1描述 szhhck have an old calculator bought 5 years ago ...
- 零基础学python-4.2 其它内建类型
这一章节我们来聊聊其它内建类型 1.类型type 在python2.2的时候,type是通过字符串实现的,再后来才把类型和类统一 我们再次使用上一章节的图片来说明一些问题 我们通过对照上面的图片.在p ...
- Graphics简单汇总
1.主页面布局文件 activity_main.xml(仅仅有2个button按钮) <?xml version="1.0" encoding="utf-8&quo ...