将datarow从一个数据表插入到特定索引

时间:2013-12-06 15:51:16

标签: c# .net datatable datarow

我正在从我的数据库中检索DataTables,我需要将一个DataTable中的特定行插入到另一个DataTable的确定索引中。

基本上我想说,DataTable dt1的行[0]在索引4处插入DataTable dt2。

这是从两个不同的数据库调用获得的两个不同的表。有没有办法做到这一点?

非常感谢任何帮助。

[编辑] 对不起,这就是我做过的事情

DataTable dt1 = populateTable();
DataTable targetTable = populateTargetTable();
DataRow dr;
dr = dt1.NewRow();
dr = targetTable.Rows[0];

int index=0;
DataRow temp;
for (int i = 0; i < dt1.Rows.Count; i++)
{
    temp = dt1.Rows[i];
    if (rowFitsCondition(temp)){
        index = i;
    }
}
dt1.Rows.InsertAt(dr, index);

并且InsertAt()调用失败,并为我提供了This row already belongs to another table error.

2 个答案:

答案 0 :(得分:4)

尝试使用Clone

dr= dt1.NewRow();
dr.ItemArray = targetTable.Rows[0].ItemArray.Clone() as object[]; 
dt1.Rows.InsertAt(dr, index);

答案 1 :(得分:0)

该行作为源表的一部分存在。您需要在目标表中创建一个新行,并将相关值从源复制到目标行,然后将目标行添加到目标表。

此链接的duplicate有几种方法可以实现此目的。