2017-02-26 304 views
0

我有兩個數據表兩個數據表都由七列組成。我想將第一個數據表的列值複製到第二個數據錶行中。如預期將DataTable列的值複製到另一個DataTable行C#

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); 
     } 
    } 

不知道如何每個值轉移到相應的列源表中的行不能大於7行

爲例

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

我發現這個功能,但這個不是作品在目的地表中?

+1

如果第一個表格包含多於7行,該怎麼辦?或者那根本就不是條件?基本上你想要將行轉換爲列? –

+0

對不起,我忘了提到源表的行不能超過7行 – Kamran

+0

看起來你實際上只需要__one__循環嗎? - ) – TaW

回答

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]); 
} 
+0

謝謝你這麼多。我在你的代碼片段中做了一些改變,它按預期工作 – Kamran

相關問題