zoukankan      html  css  js  c++  java
  • SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit

    使用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();
                    }
    
                }
    
            }
  • 相关阅读:
    省队集训Ⅱ-Day5
    省队集训Ⅱ-Day4
    省队集训Ⅱ-Day3
    省队集训Ⅱ-Day2
    省队集训Ⅱ-Day1
    并查集 Pro
    树上带修: 莫队Ⅳ
    树上骗分: 莫队Ⅲ
    带修骗分: 莫队Ⅱ
    骗分带师: 莫队Ⅰ
  • 原文地址:https://www.cnblogs.com/berlin/p/6766779.html
Copyright © 2011-2022 走看看