我将文件数据读入数据集,并尝试通过映射列使用 SQL 批量复制进行批量插入。我在数据库中的所有列名都是从我的代码创建的小写字母。
我不确定为什么会出现“数据库中不存在指定的列”异常。虽然我看到了大容量复制对象中映射的所有列。请指教。
public static void BatchBulkCopy(DataTable dataTable, string DestinationTbl, List<string> columnMapping,string filename)
{
// Get the DataTable
DataTable dtInsertRows = dataTable;
using (SqlBulkCopy sbc = new SqlBulkCopy(program.connectionStr.ToString()))
{
try
{
foreach (DataColumn col in dataTable.Columns)
{
sbc.ColumnMappings.Add(col.ColumnName.ToLower(), col.ColumnName.ToLower());
// Console.WriteLine("ok\n");
}
sbc.DestinationTableName = DestinationTbl.ToLower();
sbc.BulkCopyTimeout = 8000;
sbc.DestinationTableName = "["+ DestinationTbl.ToLower() + "]";
sbc.WriteToServer(dtInsertRows);
sbc.Close();
}
catch (Exception ex)
{
}
}
}