SqlBulkCopy批量入库列名不一致的解决方法
DataTable里有一张表tableA
tableA 有三列A,C,E
目标数据库里有一张表tableB
tableB 有五列A,B,C,D,E
我现在要把tableA的A,C,E 入到 tableB的A,C,E中
foreach (DataColumn dc in dt.Columns) { foreach (DataColumn dc2 in desBulk.Columns) { if(dc.ColumnName==dc2.ColumnName) { desBulk.ColumnMappings.Add(dc.ColumnName, dc.ColumnName); } } }
tableA和tableB的列没有对应好
/// <summary> /// 将DataTable中数据批量数据库表中 /// <param name="dt">源数据集</param> /// <param name="ExcelTitle">DataTable数据题头</param> /// <param name="DBColumnName">要插入数据的表的对应字段</param> /// <param name="DestinationTableName">写入数据的数据库表名</param> /// </summary> public static void SqlBulkCopyData(System.Data.DataTable dt, string[] DataTableTitle, string[] DBColumnName, string DestinationTableName) { SqlConnection conn = new SqlConnection("…………………………"); //初始化连接字符串 if (conn.State == ConnectionState.Closed) { conn.Open(); } SqlBulkCopy bcp = new SqlBulkCopy(conn); //指定目标数据库表名 bcp.DestinationTableName = DestinationTableName; //指定源列和目标列之间的对应关系 for (int i = 0; i < DataTableTitle.Length; i++) { bcp.ColumnMappings.Add(DataTableTitle[i], DBColumnName[i]); } //写入数据库表 bcp.WriteToServer(dt); bcp.Close(); conn.Close(); }

浙公网安备 33010602011771号