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.Table.Columns.Contains(dc.ColumnName)){dr_new[dc.ColumnName] = dr_src[dc.ColumnName];} }總結
以上是生活随笔為你收集整理的System.ArgumentException: 输入数组长度大于此表中的列数。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dubbo使用简单说明
- 下一篇: Symfony2模版引擎使用说明手册