我有一个数据表,我想复制一行数据并在同一个数据表中插入该行数据。有办法做到这一点吗?我尝试了ImportRow
和dt.Rows.Add(dr)
,但似乎这些都不起作用。
这是我的代码的一部分:
foreach(DataTable in dt.Rows){
// my code goes here
foreach(Datarow row in dt.Select ("email IS NOT NULL")){
row.ImportRow(dr);
row.AcceptChange();
}
}
答案 0 :(得分:1)
您可以尝试以下方式:
var newRow = dataTable.NewRow();
var existingRow = dataTable.Rows[rowIndexToCopy];
newRow.ItemArray = existingRow.ItemArray.Clone() as object[];
答案 1 :(得分:1)
你不应该改变foreach循环的迭代变量,如果你这样做,那么改变就不会反映出来,因为你正在有效地改变你正在迭代的数据,这是不好的。
在您的情况下,我建议您将数据添加到新的数据表中,然后使用datatable.merge命令合并数据。
DataTable newDT = new DataTable();
foreach (DataTable dt in myDt.Rows)
{
//More Code
foreach (DataRow row in dt.Select("email IS NOT NULL"))
{
newDT.Rows.Add(row);
}
}
myDt.Merge(newDT);