2010-02-12 4 views
0

Je cherche à obtenir une colonne et toutes ses données de ligne à partir d'un objet DataTable, puis crée une nouvelle colonne dans une autre table de données et l'ajoute à la nouvelle colonne et à ses lignes. Le problème que je continue à rencontrer est que les données de la ligne sortiront, tout comme les noms des colonnes, mais toutes les lignes sont ajoutées à la même colonne, je suis sûr que je manque quelque chose d'évident, en fait je sais que je suis! Toute aide est grandement appréciée.Exportation de colonne DataTable .Net

void GetColumns() 
    { 
     // add the columns to the new datatable 
     foreach (int i in mapValues) 
     { 
      SplitData.Columns.Add(i.ToString()); 
     } 
     // map values contains the index numbers of my target columns 
     foreach (int x in mapValues) 
     { 

      foreach (DataRow row in OrigData.Rows) 
      { 
       SplitData.Rows.Add(row[mapValues[LocalIndex]]); 
      } 

      LocalIndex++; 
     } 
    } 
+0

Veuillez poster (un aperçu de) votre code. –

+0

C'est là que le problème est, je suis conscient que j'ai besoin de parcourir en quelque sorte les colonnes avec les rangées, bien que je n'ai pas vu une façon claire de le faire ... – Yoda

Répondre

1

La surcharge DataRow.Add que vous utilisez est le params un, vous mettez juste vos données de colonne orig dans la première colonne du nouveau DataTable.

Vous voulez probablement quelque chose comme:

DataRow newRow = SplitData.NewRow(); // gets a new blank row with the right schema 
newRow[x.ToString()] = row[mapValues[LocalIndex]; // sets the column (that you created before) to the orig data 
SplitData.Rows.Add(newRow); 

comme le noyau de votre deuxième boucle. Vous pourriez aussi bien le faire en une boucle aussi.

+0

Mon pote je savais que c'était quelque chose de simple – Yoda

0

Bien que la réponse acceptée était totalement correcte et que j'ai appris quelque chose, il s'avère que la méthode DataTable.ImportRow est exactement ce que je veux pour mes besoins, donc juste pour référence future pour quiconque pourrait trébucher sur cela.

Questions connexes