web-dev-qa-db-fra.com

copier une seule ligne d'une table de données à l'autre

J'ai deux tables de données, l'une a quelques lignes, l'autre est vide. J'exécute une boucle sur la première pour copier certaines des lignes dans une autre table. J'obtiens l'erreur "La ligne appartient déjà à une autre table".

Existe-t-il un moyen de copier DataRows un par un vers un autre DataTable.

merci d'avance

13
MaxRecursion

Utilisation

newtable.ImportRow(oldtable.Rows[i]) 

i est le numéro de ligne souhaité.

comme expliqué dans http://support.Microsoft.com/kb/308909/en-us

28
Nikhil Agrawal

copier le ItemArray, bien sûr ne fonctionne que lorsque les colonnes sont les mêmes

var dtCopyTo = new DataTable();
foreach(var rowCopyFrom in dtCopyFrom.Rows)
{
    var updatedDataRow = dtCopyTo.NewRow();
    updatedDataRow.ItemArray = rowCopyFrom.ItemArray;
    dtCopyTo.AddRow(updatedDataRow);
}

ps: le code est tapé sans ide donc vérifiez la syntaxe pls

3
blindmeis