2017-02-26 10 views
0

2つのデータテーブルがあります両方のデータテーブルは7つの列で構成されています。私は第1のデータテーブルの列値を第2のデータテーブル行にコピーしたい。ソーステーブルの行は、例DataTable列の値を別のDataTable行にコピーするC#

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

のために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

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

関連する問題