SqlBulkCopy处理ado.net中的批量大小

时间:2012-12-29 09:19:46

标签: ado.net sqlbulkcopy

我有以下代码使用ADO.NET中的类SqlBulkCopy在数据库中输入一些数据

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(DCISParameters.ConnectionString))
        {
            bulkCopy.DestinationTableName = "tbzErgoAnalytical";
            bulkCopy.BatchSize = 250;
            bulkCopy.ColumnMappings.Add("Column1", "fldESPA");
            bulkCopy.ColumnMappings.Add("Column2", "fldEP");
            bulkCopy.ColumnMappings.Add("Column13", "fldMISCode");
            bulkCopy.WriteToServer(dbTable);
            bulkCopy.SqlRowsCopied += bulkCopy_SqlRowsCopied;
        }

dbTable是一个DataTable对象,它作为参数从方法传递,它包含我从excel文件中获取的7691行。我已将批量大小设置为250.问题是7500(250 * 30)行正确传输到数据库但后来我收到以下错误:“列'fldMISCode'不允许DBNull.Value。”我100%确定fldMISCode中没有空值,我想在最后一个插入中我只剩下191行,小于批量大小(不确定我的假设是否正确)。知道如何处理这个错误吗?提前谢谢......

0 个答案:

没有答案