C# 向datatable添加多行时发生异常。不能';t商店<;System.Data.DataRowCollection>;
C# 向datatable添加多行时发生异常。不能';t商店<;System.Data.DataRowCollection>;,c#,.net,sql,ado.net,datatable,C#,.net,Sql,Ado.net,Datatable,idLocals是数据库中的主键 填充数据表 oDtLocalCharge = bll.GetData(); 我正在另一个函数中复制数据表 dtLocalCharges = oDtLocalCharge.Copy(); 并尝试使用下面的代码添加行 DataRowCollection drr = oDtLocalCharge.Rows; dtLocalCharges.Rows.Add(drr); 当我尝试向datatable添加行时,我得到如下错误 错误: {System.Argu
idLocals
是数据库中的主键
填充数据表
oDtLocalCharge = bll.GetData();
我正在另一个函数中复制数据表
dtLocalCharges = oDtLocalCharge.Copy();
并尝试使用下面的代码添加行
DataRowCollection drr = oDtLocalCharge.Rows;
dtLocalCharges.Rows.Add(drr);
当我尝试向datatable添加行时,我得到如下错误
错误:
{System.ArgumentException:无法将类型为'System.Data.DataRowCollection'的对象强制转换为类型为'System.IConvertible'。无法存储在idLocals列中。预期类型为Int32。-->System.InvalidCastException:无法将类型为'System.Data.DataRowCollection'的对象强制转换为类型为'System.IConvertible'。
可能是主键idLocals
导致问题
有什么问题
如何解决此问题?我想在
dtLocalCharges
table中添加多行。首先,您不能将add()用于DataRowCollection。您需要单独添加每一行。您可能需要使用NewRow,复制值,然后调用add
先试试这个:
DataRowCollection drr = oDtLocalCharge.Rows;
foreach (var row in drr) dtLocalCharges.Rows.Add(row);
这是将一个数据表的所有行导入另一个数据表的最佳方式:
datatable1.Load(New DataTableReader(datatable2))
很好!我没有看完整的DataTableAPI。
datatable1.Load(New DataTableReader(datatable2))