2011-05-04 3 views
0

Pour les tests, j'aimerais étendre mon jeu de résultats. J'ai un DataTable dt qui a environ 7 résultats. Je voudrais faire quelque chose comme:C# datatable, données en double

dt.Rows.Add(dt); quelques fois, juste pour agrandir l'ensemble de données.

J'ai aussi essayé dt.Rows.Add(dt.Rows[0]);

Le premier a donné une erreur sur le type, la deuxième dit la ligne existait déjà.

+0

Êtes-vous vraiment le type ajoutant correct alors? –

Répondre

3

Vous devez faire quelque chose comme ce qui est ci-dessous. Génère une nouvelle ligne en utilisant les valeurs de la ligne existante.

DataTable dt = new DataTable(); 
DataRow dr = dt.Rows[0]; 
dt.Rows.Add(dr.ItemArray); 
+0

C'est exactement ce que ma réponse allait être. @James a trouvé les raisons pour lesquelles le code a échoué, mais n'a pas fourni de solution comme vous l'avez fait +1. – Yuck

0

Le premier élément échoue car la fonction attend un DataRow param.

Le deuxième élément échoue, car vous essayez d'ajouter un élément de la table, de sorte qu'il existe de manière inhérente.

Essayez:

DataTable dt; 
DataRow dr = dt.NewRow(); 
dr["field"] = "Some Value"; 
dt.Rows.Add(dr); 

Vérifiez la DataRow Class article on MSDN

2

Vous devez copier les valeurs de nouvelle ligne:

DataRow row = dt.NewRow(); 
    row.ItemArray = dt.Rows[0].ItemArray; 
    dt.Rows.Add(row);