Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向datatable添加多行时发生异常。不能';t商店<;System.Data.DataRowCollection>;_C#_.net_Sql_Ado.net_Datatable - Fatal编程技术网

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))