SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit「建议收藏」

SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit「建议收藏」使用SqlBulkCopy批量插入,可以快速对大批量的数量插入,性能非常好在使用时出现“来自数据源的String类型的给定值不能转换为指定目标列的类型bit”异常为DataTable与要插入的数据表字段位置不一样所至DataTable与要插入的数据表要字段名,位置,数据类型都一至才可示例,使用使用SqlBulkCopy插入多个表publicbo…

大家好,又见面了,我是你们的朋友全栈君。

使用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();
                }

            }

        }

 

转载于:https://www.cnblogs.com/berlin/p/6766779.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162217.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Source insight 3572安装和版本号An invalid source insight serial number was detected解

    Source insight 3572安装和版本号An invalid source insight serial number was detected解

    2022年1月4日
    56
  • 高并发解决方案-代理服务器Nginx[通俗易懂]

    高并发解决方案-代理服务器Nginx[通俗易懂]文章目录Nginx1.Nginx概念2.Nginx的应用场景3.Linux环境下Nginx的安装与启动4.Nginx静态网站部署5.Nginx配置虚拟主机5.1端口绑定5.2域名绑定5.2.1域名概念5.2.2域名级别5.2.3域名与ip绑定6.Nginx反向代理6.1反向代理概念6.2配置反向代理7.Nginx负载均衡7.1负载均衡概念7.2准备工作7.3配置负载均衡Nginx1.Nginx概念    Nginx是⼀款高性能的http服务器/反向代理服务器及电子

    2022年9月29日
    2
  • DjangoRestFramework序列化完整图片url

    DjangoRestFramework序列化完整图片urlDRF图片默认序列化目录格式一般为media/xxx.png,但这不是url,没法直接访问,在前端还需要进行一次字符串拼接,十分麻烦。serializer=CategorySerializer(category)returnResponse(serializer.data,status=status.HTTP_200_OK)如上面的代码,此时如果CategorySerializ…

    2022年9月22日
    5
  • java中中文乱码_java中中文乱码怎么解决?「建议收藏」

    java中中文乱码_java中中文乱码怎么解决?「建议收藏」java中中文乱码解决方法:一、设置工作空间的编码1、编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)——选项(Preferences)。2、点击常规(General)——工作空间(Wordspace),然后在右侧的文本文件编码格式(Textfileencoding)中选择你想要设置的编码格式,系…

    2022年7月7日
    161
  • CSDN学院免费课程领取教程[通俗易懂]

    CSDN学院免费课程领取教程

    2022年2月12日
    52
  • AutoEventWireup属性

    AutoEventWireup属性aspx页面第一行page指令中包含了一个AutoEventWireup属性2008-09-1417:15使用Asp.NET时,新建的aspx页面第一行page指令中包含了一个AutoEventWireup属性。网上的很多教程认为这一属性,甚至这一行代码都是没用的。其实,这是不了解Asp.NET事件处理模型的表现。简单来说,这一属性决定了当前页是否自动关联某些特殊事件。…

    2022年5月8日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号