使用SqlBulkCopy进行批量插入数据时踩过的坑
之前一直都没用过SqlBulkCopy关键字进行数据插入,更没了解过。
事因:因业务需要在数据表中添加两列,然后将数据插入进表中
之前都是这样写的
dt.Columns.Add(new DataColumn("sComment", typeof(string))); 等等一一写出
然后再一一赋值
dt.Rows[i]["sComment"] = tempBill.sComment;
可是我将我那两列定义好也赋了值,要么异常要么就不往表中插入数据。
一直以为是Linq映射的问题,后来逛了下CSDN才知道 SqlBulkCopy 使用是有要求的,它不是以你所写的列名去表中自动对应的,而是以列有索引顺序与你写的代码中的列去对应的。以下是别人在CSDN上的回复:
“SqlBulkCopy不是根据表的ColumnName来匹配的,而是根据ColumnIndex匹配,
也就是说你的表 字段必须跟数据库的表字段完全一致(Index的排序要跟数据表的一样)。
就算你该字段不打算给他插入值,也要建个DataColumn。包括自增ID.不需要给他值就好了”
于是自己也将代码中的列顺序一一都与数据表顺序对应起来,另外就算代码中用不到的列名,也要在代码中定义好写出来只要不赋值就可以了。要不然还是无法插入数据,还会报错。
使用SqlBulkCopy进行批量插入数据时踩过的坑的更多相关文章
- SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkC ...
- sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下. 其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...
- C#中的SqlBulkCopy批量插入数据
在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// < ...
- myBatis获取批量插入数据的主键id
在myBatis中获取刚刚插入的数据的主键id是比较容易的 , 一般来说下面的一句话就可以搞定了 , 网上也有很多相关资料去查. @Options(useGeneratedKeys = true, k ...
- PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有
foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight ...
- Django orm 实现批量插入数据
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- 用SqlBulkCopy批量插入数据到SqlServer数据库表中
首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using Syst ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
- C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据
#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...
随机推荐
- centOS安装openoffice的方法
centOS安装openoffice的方法 分类: centOS 2012-06-15 10:24 2872人阅读 评论(0) 收藏 举报 centos测试 yum install openoffic ...
- Spring 学习记录5 BeanFactory
主题 记录我对BeanFactor接口的简单的学习. BeanFactory我感觉就是管理bean用的容器,持有一堆的bean,你可以get各种bean.然后也提供一些bean相关的功能比如别名呀之类 ...
- LUA upvalue使用陷阱一例
CA = {} CA.TestCb = function(self, cb) if not self._cb then self._cb = function() cb() end end self. ...
- excel解析的几种实现方法
- Django框架开发web网站的网页优化—页面静态化
网站优化-页面静态化 1)概念 提前将页面所用到的数据从数据库查询出来,然后生成一个静态页面,之后用户来访问的时候,直接返回静态页面. 举例:首页静态化:获取首页用到的数据表中的数据,生成静态首页in ...
- jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
jsp出现getOutputStream() has already been called for this response异常的原因和解决方法 在tomcat5下jsp中出现此错误一般都是在js ...
- 排序总结---常用的排序算法总结,java和js实现
这篇博客对几种常见的排序算法进行归纳总结,在接下来的博客中会依次给出每个排序算法的例子 [由于博客上面进行编辑不太方便,图表都是在电脑上编辑好,上传的图片] 1.排序的分类 2.几种内部排序方法的比较 ...
- Application.LoadLevel & Object.DontDestroyOnLoad
[Application.LoadLevel] 只有在File->Build Setting中设置了的按钮才能被加载. 当level加载完成后,MonoBehaviour.OnLevelWasL ...
- Android开发实战之ViewPager的轮播
在安卓开发的许多控件中,如果你没有使用过ViewPager,就不能算是一个安卓开发工程师,在本篇博文中,我会总结ViewPager的使用方法, 以及一些开发中的拓展.希望本篇博文对你的学习和工作有所帮 ...
- vmware Selinux配置错误,导致无法启动虚拟机
Linux 开机提示kernel panic - not syncing: Attempted to kill init! 解决方法: 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜 ...