如何复制行并添加到同一数据表

时间:2016-04-27 07:53:25

标签: c# datatable

我有一个数据表,我想复制一行数据并在同一个数据表中插入该行数据。有办法做到这一点吗?我尝试了ImportRowdt.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();
        }

}

2 个答案:

答案 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);