完整错误信息
在 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];
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。