System.ArgumentException: 输入数组长度大于此表中的列数。

完整错误信息

System.ArgumentException: 输入数组长度大于此表中的列数。 在 System.Data.DataTable.NewRecordFromArray(Object[] value) 在 System.Data.DataRowCollection.Add(Object[] values) 在 \MainFrm.ImportDB_InsertRecord(OleDbTransaction dbtran, DataTable destTable, String insertCommand, DataRow dr_src, String pKColumnName, Int32& primaryKeyValue, FilterColumn filterColumn) 位置 J:\csProjects\Main.cs:行号 2636 在 \MainFrm.ImportDB_ImportTable(OleDbConnection con_src, OleDbTransaction dbtran, String tableName, FilterColumn filterColumn) 位置 J:\csProjects\Main.cs:行号 2573 在 \MainFrm.ImportDB_ImportContract(OleDbConnection con_src, OleDbTransaction dbtran, String ProjectID_src, Int32& impContract_exist, Int32& impContract_succe) 位置 J:\csProjects\Main.cs:行号 2519 在 \MainFrm.ImportDB_ImportProject(String srcDBFilePath) 位置 J:\csProjects\Main.cs:行号 2382

错误代码行destTable.Rows.Add(dr_src.ItemArray);

destTable类型为:System.Data.DataTable dr_src的类型为:System.Data.DataRow

错误原因

dr_src包含的列数大于destTable包含的列数。

解决方案

根据目标数据表的结构生成新行,然后逐个字段填充;

DataRow dr_new = destTable.NewRow();foreach (DataColumn dc in destTable.Columns){if (dr_src(dc.ColumnName)){dr_new[dc.ColumnName] = dr_src[dc.ColumnName];}}

,分之百的把自己推销给自己。

System.ArgumentException: 输入数组长度大于此表中的列数。

相关文章:

你感兴趣的文章:

标签云: