idLocals
是数据库中的主键
填充数据表
oDtLocalCharge = bll.GetData();
我在另一个函数中复制数据表
dtLocalCharges = oDtLocalCharge.Copy();
并尝试使用以下代码添加行
DataRowCollection drr = oDtLocalCharge.Rows;
dtLocalCharges.Rows.Add(drr);
当我尝试向datatable添加行时,我收到错误,如下所示
Error:
{System.ArgumentException: Unable to cast object of type 'System.Data.DataRowCollection' to type 'System.IConvertible'.Couldn't store <System.Data.DataRowCollection> in idLocals Column. Expected type is Int32. ---> System.InvalidCastException: Unable to cast object of type 'System.Data.DataRowCollection' to type 'System.IConvertible'.
可能是主键idLocals
导致问题
有什么问题?
我该如何解决这个问题?我想在dtLocalCharges
表
答案 0 :(得分:4)
首先,您不能将Add()与DataRowCollection一起使用。您需要单独添加每一行。您可能需要使用NewRow,复制值,然后调用Add。
首先尝试:
DataRowCollection drr = oDtLocalCharge.Rows;
foreach (var row in drr) dtLocalCharges.Rows.Add(row);
答案 1 :(得分:1)
这是将一个数据表的所有行导入另一个数据表的最佳方法:
datatable1.Load(New DataTableReader(datatable2))