惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 风清云淡

Extjs使用 RestfulWebApi +Token验证小结 Oracle 10g的备份与还原 如何通过反射动态调用泛型方法 Oracle与Sql Server写SQL的区别 Oracle 表与字段的注释操作 将MS SQL SERVER 数据库导入到ORACLE的坑 SQL SERVER 触发器的误区 Asp.net Core部署于CentOS上报404错误的坑 SQL SERVER OVER开窗函数,Partition By,ROW_NUMBER(),DENSE_RANK(),RANK()排名函数 CefSharp"Could not load file or assembly 'CefSharp.Core.dll' or one of its dependencies" 在同一个项中引用同一类库的多个版本 Visual Studio中Js使用智能感知 Func<T>,Action<T>,Predicate<T>使用小结 Nuget 在VS中操作命令 Unity的动态加载简单使用 枚举的使用总结 IIS WEB程序如何访问共享目录 AngularJS之页面跳转Route ASP.NET MVC4 BundleConfig的注意事项
SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit
风清云淡 · 2017-04-26 · via 博客园 - 风清云淡

使用SqlBulkCopy批量插入,可以快速对大批量的数量插入,性能非常好

在使用时出现“来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit”异常

为DataTable与要插入的数据表字段位置不一样所至

DataTable与要插入的数据表要字段名,位置,数据类型都一至才可

示例,使用使用SqlBulkCopy插入多个表

        public bool BatchInsertUniqeCode(DataTable uniqueCodeProduceContrastDt,DataTable uniqueCodeGenerateDt)
        {
            using(SqlConnection conn= (SqlConnection)(base.DbContext.Database.Connection))
            {
                if (conn.State == ConnectionState.Closed) { conn.Open(); }
                SqlTransaction tran = conn.BeginTransaction();
                SqlBulkCopy upBlock = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, tran);
                SqlBulkCopy ugBlock = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, tran);
                try
                {
                    ugBlock.DestinationTableName = "UniqueCodeGenerate";
                    ugBlock.BatchSize = uniqueCodeGenerateDt.Rows.Count;
                    if (uniqueCodeGenerateDt != null && uniqueCodeGenerateDt.Rows.Count > 0)
                    {
                        ugBlock.WriteToServer(uniqueCodeGenerateDt);
                    }
                    ugBlock.Close();


                    upBlock.DestinationTableName = "UniqueCodeProduceContrast";
                    upBlock.BatchSize = uniqueCodeProduceContrastDt.Rows.Count;
                    if (uniqueCodeProduceContrastDt != null && uniqueCodeProduceContrastDt.Rows.Count > 0)
                    {
                        upBlock.WriteToServer(uniqueCodeProduceContrastDt);
                    }
                    upBlock.Close();

                    tran.Commit();
                    return true;
                }
                catch(Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
                finally
                {
                    upBlock.Close();
                    ugBlock.Close();
                    conn.Close();
                }

            }

        }