2014-12-03 47 views
1

我有15列和多行,我需要創建一個僅具有15列和複製的三列的新數據表一個數據表從原始數據表到第二個數據表的所有相應數據。如何獲得一個數據表中有兩列從另一個數據表中有很多列在C#

我查找了一個答案,而且我發現的最接近的是以下URL。但是我使用SO解決方案的問題是我需要刪除12列以獲得我期望的3列,因爲SO解決方案正在刪除列。

有沒有更簡單的方法來做到這一點?任何暗示將不勝感激。我不知道LINQ(也許這是一個LINQ問題,我不知道),我是一箇中級C#程序員。謝謝你的幫助。

SO Solution That is close to what I need

後來編輯:This Solved My Problem由於許多感謝@Tim Schmelter他的迴應,我張貼了這個問題,我看到,在這一天什麼,我需要做的到底是複製的最終數據表後(有三列)到一個dataGridView(已經有三列)。所以我的問題就是如何將具有15列的dataTable複製到具有3列的DataGridView。我通過查看我的帖子中第二條SO鏈接中的Nomi Ali的評論,找到了我的答案。我只需在DataGridView上將AutoGenerateColumn設置爲False即可。這解決了我的問題。不過,我會嘗試@Tim Schmelter的回答,如果這樣做,我會將其標記爲答案。

回答

1

也許你可以定義白名單和使用LINQ:

string[] wantedColumns = { "Column1", "Column2", "Column3" }; // for example 
DataTable secondTable = firstTable.Copy(); 
var removeColumns = secondTable.Columns.Cast<DataColumn>() 
    .Where(col => !wantedColumns.Contains(col.ColumnName, StringComparer.InvariantCultureIgnoreCase)) 
    .ToList(); 
removeColumns.ForEach(c => secondTable.Columns.Remove(c)); 
+0

有12列,我必須刪除。我甚至不知道所有15列的名字。 – user1298925 2014-12-03 15:22:16

+0

@ user1298925,如果你不知道要刪除的列,你怎麼樣* *實際上要刪除它們?你知道列索引嗎? – Habib 2014-12-03 15:25:42

+0

謝謝你的回答 – user1298925 2014-12-03 16:14:55

相關問題