2010-02-12 85 views
0

我正在尋找從DataTable對象獲取列及其所有行數據,然後在另一個數據表中創建一個新列,並將其添加到新列及其行中。我一直遇到的問題是行數據會出來,列名也會出現,但所有行都附加到同一列,我敢肯定,我錯過了一些明顯的事情,事實上我知道我是!任何幫助都很受歡迎。.Net 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

請發佈(大綱)您的代碼。 – 2010-02-12 10:25:30

+0

這是問題出在哪裏,我知道我需要以某種方式遍歷列和列一起遍歷,儘管我還沒有看到明確的方法來執行此操作... – Yoda 2010-02-12 10:45:37

回答

1

您正在使用的DataRow.Add超載是PARAMS一個,所以你只是把你的原稿列數據在新的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); 

爲你的第二個for循環的核心。你也可以在一個循環中完成它。

+0

乾杯夥伴我知道這是簡單的事情 – Yoda 2010-02-12 11:40:10

0

雖然接受的答案是完全正確的,但我從中學到了一些東西,結果證明DataTable.ImportRow方法正是我所需要的,所以只是爲了將來的參考。