2010-02-12 5 views
0

Я хочу получить столбец и все его данные строки из объекта DataTable, а затем создать новый столбец в другой таблице данных и добавить его в новый столбец и его строки. Проблема, с которой я сталкиваюсь, - это данные строки, как и имена столбцов, но все строки добавляются в один и тот же столбец, я уверен, что им не хватает чего-то очевидного, infact, я знаю, что я есть! Любая помощь очень полезна.. Экспорт столбца DataTable

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

Пожалуйста, напишите (контур) вашего кода. –

+0

Вот в чем проблема: я знаю, что мне нужно как-то перебирать столбцы вместе со строками, хотя я не видел четкого способа сделать это ... – Yoda

ответ

1

Перегрузка DataRow.Add, что вы используете это PARAMS один, так что вы просто положить ваши данные колонки Orig в первой колонке нового DataTable.

Вы, вероятно, хотите что-то вроде:

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

как ядро ​​вашего второго цикла. Вы также можете сделать это в одном цикле.

+0

Приветствие приятеля Я знал, что это было что-то простое – Yoda

0

Несмотря на то, что принятый ответ был абсолютно прав, и я узнал что-то от него, оказывается, что метод DataTable.ImportRow является именно тем, что я хочу для своих нужд, поэтому просто для будущих ссылок для тех, кто может наткнуться на это.

Смежные вопросы