我正在从我的数据库中检索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.
答案 0 :(得分:4)
尝试使用Clone
dr= dt1.NewRow();
dr.ItemArray = targetTable.Rows[0].ItemArray.Clone() as object[];
dt1.Rows.InsertAt(dr, index);
答案 1 :(得分:0)
该行作为源表的一部分存在。您需要在目标表中创建一个新行,并将相关值从源复制到目标行,然后将目标行添加到目标表。
此链接的duplicate有几种方法可以实现此目的。