将DataTable Column的值复制到另一个DataTable行C#

时间:2017-02-26 14:33:13

标签: c# loops foreach datatable

我有两个数据表两个数据表都包含七列。我想将第一个数据表的列值复制到第二个数据表行。源表的行不能大于7行

例如

Source          Destination 
SourceColumn    ColumnOne   ColumnTwo    ColumnThree    ColumnFour ......
   1              1           2            3                4
   2
   3
   4 
   6
   7

我找到了这个功能,但这不能按预期工作

   private void CopyColumns(DataTable Source, DataTable Destination, params string[] Columns )
    {
        foreach(DataRow SourceRow in dtable.Rows)
        {
            DataRow DestinationRow = dt.NewRow();
            foreach(string ColumnName in Columns)
            {
                DestinationRow[ColumnName] = SourceRow[ColumnName];
            }
            dt.Rows.Add(DestinationRow);
        }
    }

知道如何将每个值转移到目标表中的适当列吗?

1 个答案:

答案 0 :(得分:2)

以下是示例代码。这里dt1dt2分别是源表和目标表。

假设dt1的行数与dt2中的列数相同。

var newRow = dt2.NewRow();  //dt2 is the destination table. Creating new row for destination table.

for (var i = 0;i < dt2.Columns.Count;i++)
{
    var row1 = dt1.Rows[i];
    newRow[i] = row1[0];
}

dt2.Rows.Add(newRow); //Adding new row to the destination table.

var xRow = dt2.Rows[0]; //Retrieving row for displaying the data to Console.

for (var j = 0; j < dt2.Columns.Count; j++)
{
    Console.WriteLine(xRow[j]);
}