最近在做数据从Excel批量导入MSSQL时,传统的是使用Insert Into Table方法,不过这个方便比较慢

通过使用 SqlBulkCopy 可以批量导入到数据库。

默认批量导入数据库,需要DataTable的构架和MSSQL的表结构一样。但是使用ColumnMappings可以对列明进行映射。

例如

List<string[]> list = new List<string[]>();list.Add(new string[] { "staffid", "员工ID" });list.Add(new string[] { "StaffCode", "员工号" });
list.Add(new string[] { "displayname", "中文姓名" });
list.Add(new string[] { "username", "登录名" });using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(ConStr, SqlBulkCopyOptions.KeepIdentity))//引用SqlBulkCopy
{
sqlRevdBulkCopy.DestinationTableName = strTableName;//数据库中对应的表名for (int i = 0; i < list.Count; i++)
{
sqlRevdBulkCopy.ColumnMappings.Add(list[i][1], list[i][0]);
}sqlRevdBulkCopy.WriteToServer(dtData);//数据导入数据库sqlRevdBulkCopy.Close();//关闭连接
}

  其中有两点需要注意:

(1)SqlBulkCopyOptions.KeepIdentity 这个参数允许自增型主键导入

(2)表的列名是区分大小写的。这点非常重要。笔者就是花了2-3个小时解决这个问题。

因此程序运行,总是提示列名不匹配,后来仔细查看数据库一列是qq,但是在映射里写成了QQ。传统的我们认为MSSQL的SQL是不区分大小写的(SQL_PRC_CI_AS排序)

但是,没想到批量导入竟然列名区分大小写。

关于SqlBulkCopy SQL批量导入需要注意,列名是区分大小写的相关推荐

  1. SQL批量导入数据SqlBulkCopy的用法(适用于过万笔记录一次性插入数据库)

    由于要插入数据库的数据量过大,所以用到批量导入的方法,这个和以前分享的批量插入在本质上是不同,我主要研究的是数据集即DataTable或DataSet等,如何批量插入数据库的,下面的方法可以维护数据源 ...

  2. php批量导入txt数据,基于PHP读取TXT文件向数据库导入海量数据的方法

    搜索热词 有一个TXT文件,包含了10万条记录,格式如下: 列1 列2 列3 列4 列5 a 00003131 0 0 adductive#1 adducting#1 adducent#1 a 000 ...

  3. 【ITOO 1】SQLBulkCopy实现不同数据库服务器之间的批量导入

    导读:在做项目的时候,当实现了动态建库后,需要实现从本地服务器上获取数据,批量导入到新建库的服务器中的一个表中去.之前是用了一个SQL脚本文件实现,但那时候没能实现不同的数据库服务器,现在用了SqlB ...

  4. 快速批量导入庞大数据到SQL SERVER数据库(ADO.NET)

    原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/11/11/1331060.html 如果你需要在程序中批量插入成千上万行的数据,你会怎么编写 ...

  5. sqlbulkcopy mysql_c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中

    今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...

  6. ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具

    ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...

  7. 从TXT文本文档向Sql Server中批量导入数据

    因为工作的需要,近期在做数据的分析和数据的迁移.在做数据迁移的时候需要将原有的数据导入到新建的数据库中.本来这个单纯的数据导入导出是没有什么问题的,但是客户原有的数据全部都是存在.dat文件中的.所以 ...

  8. 读取接口XML和批量导入数据SqlBulkCopy

    首先是C#处理xml文档 string urlStr = string.Format("http://--?timeBeg={0}&timeEnd={1}", timeBe ...

  9. 批量导入Sql数据库

    前几天做一个项目,有个sql数据库需要批量导入,自己用eclipse导入太慢了,花了点时间总结了其它两种导入数据库的方式 方式一:使用终端进行批量导入,我用的是Mysql5.1版本 执行sql语句:s ...

最新文章

  1. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程
  2. 关于去除2个inline-block之间的间距
  3. asp.net程序调用NTFS分区下Oracle客户端
  4. SQL99标准中的查询(MySQL)
  5. 搭建简易Linux局网服务器
  6. 一个美国老工程师的心理话: 给年轻工程师的十大忠告
  7. 单例模式---懒汉模式与饿汉模式
  8. Node.js+Koa开发微信公众号个人笔记(一)准备工作 - ZhangCui - 博客园
  9. C# 中数据缓存总结
  10. vscode配置c 环境_SAST Weekly教你在macOS上用VS Code配置C/C++编程环境
  11. oracle中的多表连接
  12. VC2005工程常用设置系统环境变量设置
  13. 关于设计行业的一些分类
  14. vue当前浏览器是否为ie_vue判断当前浏览器为IE低版本,给出升级提示;IE11及其他浏览器正常使用...
  15. cocos Creator i18n 多语言
  16. Airbnb短租房源数据可视化
  17. JVM常见命令行及图形工具
  18. 免费资源和IT常用链接
  19. [Scene Graph] Neural Motifs: Scene Graph Parsing with Global Context 论文解读
  20. python下载图片 referer_Python必应超清壁纸爬虫下载|Python爬取必应每日图片源码 - PS下...

热门文章

  1. 【TensorFlow-windows】keras接口——卷积手写数字识别,模型保存和调用
  2. 介绍几个医学图像处理会议
  3. JS拖拽,移动与拉伸
  4. (转)网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)...
  5. Spring Boot 统一结果封装
  6. 关于Java抽象类,接口与实现接口及派生类继承基类
  7. Python查找指定文件
  8. Jupyter配置步骤
  9. docker实战系列之搭建rabbitmq
  10. 视觉slam十四讲ch6曲线拟合 代码注释(笔记版)