2017-02-26 3 views
0

Ich habe zwei Datentabellen Beide Datentabellen bestehen aus sieben Spalten. Ich möchte die Spaltenwerte der ersten Datentabelle in die zweite Datentabellenzeile kopieren. Quelle Tabellenzeilen kann nicht größer sein als 7 ZeilenKopieren von DataTable-Spaltenwerten in eine andere DataTable-Zeile C#

für Beispiel

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

ich diese Funktion gefunden haben, aber das funktioniert nicht wie erwartet

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

Jede Idee, wie die einzelnen Werte zu entsprechenden Spalte verschieben in der Zieltabelle?

+1

Was ist, wenn die erste Tabelle mehr als 7 Zeilen enthält? Oder wird das nicht die Bedingung sein? Grundsätzlich möchten Sie Zeilen in die Spalten konvertieren? –

+0

Entschuldigung, ich habe vergessen zu erwähnen Quellentabelle Zeilen können nicht mehr als 7 Zeilen sein – Kamran

+0

Sieht aus, als ob Sie tatsächlich nur __one__ Schleife brauchen? -) – TaW

Antwort

2

Folgendes ist der Beispielcode. Hier sind dt1 und dt2 Quell- bzw. Zieltabellen.

Angenommen, dt1 hat die gleiche Anzahl von Zeilen wie die Anzahl der Spalten in 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

Vielen Dank dich so sehr. Ich habe einige Änderungen in Ihrem Code-Snippet vorgenommen und es funktioniert wie erwartet – Kamran

Verwandte Themen