关于SqlBulkCopy SQL批量导入需要注意,列名是区分大小写的
最近在做数据从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批量导入需要注意,列名是区分大小写的相关推荐
- SQL批量导入数据SqlBulkCopy的用法(适用于过万笔记录一次性插入数据库)
由于要插入数据库的数据量过大,所以用到批量导入的方法,这个和以前分享的批量插入在本质上是不同,我主要研究的是数据集即DataTable或DataSet等,如何批量插入数据库的,下面的方法可以维护数据源 ...
- php批量导入txt数据,基于PHP读取TXT文件向数据库导入海量数据的方法
搜索热词 有一个TXT文件,包含了10万条记录,格式如下: 列1 列2 列3 列4 列5 a 00003131 0 0 adductive#1 adducting#1 adducent#1 a 000 ...
- 【ITOO 1】SQLBulkCopy实现不同数据库服务器之间的批量导入
导读:在做项目的时候,当实现了动态建库后,需要实现从本地服务器上获取数据,批量导入到新建库的服务器中的一个表中去.之前是用了一个SQL脚本文件实现,但那时候没能实现不同的数据库服务器,现在用了SqlB ...
- 快速批量导入庞大数据到SQL SERVER数据库(ADO.NET)
原文地址:http://www.cnblogs.com/chenxizhang/archive/2008/11/11/1331060.html 如果你需要在程序中批量插入成千上万行的数据,你会怎么编写 ...
- sqlbulkcopy mysql_c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中
今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...
- ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具
ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...
- 从TXT文本文档向Sql Server中批量导入数据
因为工作的需要,近期在做数据的分析和数据的迁移.在做数据迁移的时候需要将原有的数据导入到新建的数据库中.本来这个单纯的数据导入导出是没有什么问题的,但是客户原有的数据全部都是存在.dat文件中的.所以 ...
- 读取接口XML和批量导入数据SqlBulkCopy
首先是C#处理xml文档 string urlStr = string.Format("http://--?timeBeg={0}&timeEnd={1}", timeBe ...
- 批量导入Sql数据库
前几天做一个项目,有个sql数据库需要批量导入,自己用eclipse导入太慢了,花了点时间总结了其它两种导入数据库的方式 方式一:使用终端进行批量导入,我用的是Mysql5.1版本 执行sql语句:s ...
最新文章
- python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程
- 关于去除2个inline-block之间的间距
- asp.net程序调用NTFS分区下Oracle客户端
- SQL99标准中的查询(MySQL)
- 搭建简易Linux局网服务器
- 一个美国老工程师的心理话: 给年轻工程师的十大忠告
- 单例模式---懒汉模式与饿汉模式
- Node.js+Koa开发微信公众号个人笔记(一)准备工作 - ZhangCui - 博客园
- C# 中数据缓存总结
- vscode配置c 环境_SAST Weekly教你在macOS上用VS Code配置C/C++编程环境
- oracle中的多表连接
- VC2005工程常用设置系统环境变量设置
- 关于设计行业的一些分类
- vue当前浏览器是否为ie_vue判断当前浏览器为IE低版本,给出升级提示;IE11及其他浏览器正常使用...
- cocos Creator i18n 多语言
- Airbnb短租房源数据可视化
- JVM常见命令行及图形工具
- 免费资源和IT常用链接
- [Scene Graph] Neural Motifs: Scene Graph Parsing with Global Context 论文解读
- python下载图片 referer_Python必应超清壁纸爬虫下载|Python爬取必应每日图片源码 - PS下...