将一个数据表复制到另一个

时间:2014-02-19 15:16:09

标签: c# .net datatable

我有第一个数据表:

dtOld

列:

C E

第二个数据表:

dtNew:

A B C D E F

我只想将stOld数据复制到带有指定列的dtNew中。

即:

c col的dtOld值应该复制到dtNew..and E的D col值  Col to F col

我尝试了一些复杂的逻辑,但它没有用。

有没有办法解决这个问题。

我试过:

DataTable dtOld = new DataTable();
                        dtOld = ds.Tables[0];
                        string[] columns = { "c", "E" };
                        string[] columns2 = { "D", "F " };
                        foreach (DataRow sourcerow in dtOld.Rows)
                        {
                            DataRow destRow = dtNew.NewRow();
                            int cntm = 0;
                            foreach (string colname in columns)
                            {
                                destRow[columns2[cntm]] = sourcerow[colname];
                                cntm++; 
                            }
                            dtNew.Rows.Add(destRow);
                        }

请帮帮我。

2 个答案:

答案 0 :(得分:2)

它只是从一组固定的列到另一组的简单副本,那么为什么要复杂化呢?

foreach (DataRow sourcerow in dtOld.Rows)
{
    DataRow destRow = dtNew.NewRow();
    destRow["D"] = sourcerow["c"];
    destRow["F"] = sourcerow["E"];
    dtNew.Rows.Add(destRow);
}

答案 1 :(得分:0)

    foreach (DataRow row in dtOld.Rows)
        dtNew.LoadDataRow(new[]
                                  {
                                      null, // default value
                                      null,
                                      null,
                                      row["C"],
                                      null,
                                      row["E"]
                                  }, LoadOption.Upsert);