2016-04-27 7 views
0

Ich habe eine Datentabelle, und ich möchte eine Zeile von Daten kopieren und fügen Sie diese Zeile der Daten in der gleichen Datentabelle. Gibt es einen Weg dies zu tun? Ich habe versucht ImportRow und dt.Rows.Add(dr), aber es scheint, dass diese beiden nicht funktioniert.Wie Zeile kopieren und zu derselben Datentabelle hinzufügen

Dies ist Teil meines Code:

foreach(DataTable in dt.Rows){ 
    // my code goes here 
     foreach(Datarow row in dt.Select ("email IS NOT NULL")){ 

      row.ImportRow(dr); 
      row.AcceptChange(); 
     } 

} 

Antwort

1

Sie könnten versuchen, so etwas wie:

var newRow = dataTable.NewRow(); 
var existingRow = dataTable.Rows[rowIndexToCopy]; 
newRow.ItemArray = existingRow.ItemArray.Clone() as object[]; 
1

Sie sollen nicht die Iterationsvariable einer foreach-Schleife werden zu ändern, und wenn Sie das tun, dann dem Änderungen werden nicht berücksichtigt, da Sie die Daten, die Sie durchlaufen, affektiv ändern, was nicht gut ist.

In Ihrem Fall würde ich vorschlagen, dass Sie Ihre Daten in eine neue Datentabelle hinzufügen und anschließend die Daten mit dem Befehl datatable.merge zusammenführen.

  DataTable newDT = new DataTable(); 
      foreach (DataTable dt in myDt.Rows) 
      { 
       //More Code 
       foreach (DataRow row in dt.Select("email IS NOT NULL")) 
       { 
        newDT.Rows.Add(row); 
       } 
      } 
      myDt.Merge(newDT); 
Verwandte Themen