SQL批量插入出现 类型转换错误
1、原因:在使用SqlBulkCopy批量操作时,Map映射会出现表结点对应错误
2、解决方案:自己先建立字段映射
using (SqlConnection con = new SqlConnection(DbConfig.CsNisConnString))
{
con.Open();
using (SqlTransaction tran = con.BeginTransaction())
{
SqlBulkCopy bc = new SqlBulkCopy(con,
SqlBulkCopyOptions.CheckConstraints |
SqlBulkCopyOptions.FireTriggers |
SqlBulkCopyOptions.KeepNulls, tran);
SqlBulkCopyColumnMapping m1 = new SqlBulkCopyColumnMapping("SchoolId", "SchoolId");
SqlBulkCopyColumnMapping m2 = new SqlBulkCopyColumnMapping("AreaCode", "AreaCode");
SqlBulkCopyColumnMapping m3 = new SqlBulkCopyColumnMapping("LastPushDate", "LastPushDate");
SqlBulkCopyColumnMapping m4 = new SqlBulkCopyColumnMapping("StudentCode", "StudentCode");
SqlBulkCopyColumnMapping m5 = new SqlBulkCopyColumnMapping("StudentName", "StudentName");
SqlBulkCopyColumnMapping m6 = new SqlBulkCopyColumnMapping("ClassCode", "ClassCode");
SqlBulkCopyColumnMapping m7 = new SqlBulkCopyColumnMapping("ClassName", "ClassName");
SqlBulkCopyColumnMapping m8 = new SqlBulkCopyColumnMapping("ManageCode", "ManageCode");
SqlBulkCopyColumnMapping m9 = new SqlBulkCopyColumnMapping("UnPushCount", "UnPushCount");
bc.ColumnMappings.Add(m1);
bc.ColumnMappings.Add(m2);
bc.ColumnMappings.Add(m3);
bc.ColumnMappings.Add(m4);
bc.ColumnMappings.Add(m5);
bc.ColumnMappings.Add(m6);
bc.ColumnMappings.Add(m7);
bc.ColumnMappings.Add(m8);
bc.ColumnMappings.Add(m9);
bc.BatchSize = 10000;
bc.DestinationTableName = "XCard_PclException"; //目标表
bc.WriteToServer(listAll.AsDataReader());
tran.Commit();
}
con.Close();
}
SQL批量插入出现 类型转换错误的更多相关文章
- SQL批量插入表类 SqlBulkInsert
ado.net已经有了sqlBulkCopy, 但是那个用xml格式,网络传输数据量太大. 自己实现了一个,传输尽量少的字节. 性能没对比过,有需要的自己拿去测试. using System.Data ...
- insert into select 与select into from -- sql 批量插入
参考资料:http://www.w3school.com.cn/sql/sql_union.asp UNION:操作符用于合并两个或多个select语句的结果集. ...
- Delphi中SQL批量插入记录
http://www.cnblogs.com/azhqiang/p/4050331.html 在进行数据库操作时, 我们经常会遇到批量向数据库中写入记录的情况. 在这里我提供3种操作方式: 1. ...
- Sql批量插入方法
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- sql 批量插入
create PROCEDURE insertinto as begindeclare @id int;set @id=1;while @id<10begininsert into perso ...
- 使用SQL批量插入数据到数据库 以及一些SQL函数的语法
批量插入100条记录 set nocount on declare @i int=1; while @i<=100 begin Insert into Client(id,ClientCode, ...
- SQL 批量插入数据
后面进行完善修改. /*批量插入数据*/ 这个比较完善.直接插入数据库表. INSERT INTO `goods_transverter` ( `code`,`es_id`,`barcode`, `n ...
- sql批量插入缓慢
1.有一个普通的表t_asset,只有2个字段id,ip 没有索引 2.当用insert into t_asset(id,ip) values(?,?),(?,?) 1200多条记录时,发现竟然用了3 ...
- Sql批量插入时如果遇到相同的数据怎么处理
测试数据 -- 创建测试表1 CREATE TABLE `testtable1` ( `Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `UserId` I ...
随机推荐
- Browserify命令行参数
–outfile, -o: browserify日志打印到文件 –require, -r: 绑定模块名或文件,用逗号分隔 –entry, -e: 应用程序的入口 –ignore, -i: 省略输出 – ...
- Linux 实用操作命令
1. ssh远程连接服务器命令 ssh [username@]hostname 2. 查看远程服务器近期登陆记录 last 3. 用户及其主目录的创建 1. useradd –d /home/lb ...
- java 位数补0处理(转)
数据库中表的ID为4位数字,如:0001,0012,0123,1234 如果插入的值不满足4位,需要进行转换,有两种方法 第一种方法以: int n = 1; NumberFormat ...
- vs2012 在调试或运行的过程中不能加断点
在使用VS2012 的过程中,突然发现在调试的过程中,不能加断点,显示断点未能绑定.在搜寻了很多解决方案后未能解决,3.23这一天,重装了VS也没有用. 便想着把网上所有的方法都试个遍也要解决这个问题 ...
- WPF TextBox 获得焦点后,文本框中的文字全选中
textbox.GotFocus 事件处理 Textbox.SelectAll() 是不行的, 这样处理会发生的情况是: 1) textbox1 当前没有焦点, 内容为 someText. 2) 鼠标 ...
- C#区块链零基础入门,学习路线图 转
C#区块链零基础入门,学习路线图 一.1分钟短视频<区块链100问>了解区块链基本概念 http://tech.sina.com.cn/zt_d/blockchain_100/ 二.C#区 ...
- C# - Generics泛型,一图话c#泛型
一.一篇好文 https://www.cnblogs.com/yueyue184/p/5032156.html 二.一幅好图
- MySQl的group by 与排序
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtoAAAFLCAIAAABnXrwfAAAgAElEQVR4nO2dT29jvZHu+WHnW8xqdl ...
- 捕获enter键盘事件绑定到登录按钮
/** *捕获enter键盘事件绑定到登录按钮 */ function keyLogin(event) { if (event.keyCode == 13) { document.getElement ...
- 【转】c++析构函数(Destructor)
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存.关闭打开的文件等,这个函数就是析构函数. 析构函数(Destructor)也 ...