2013-06-19 26 views
3

我想在C#中的DataTable中選擇一列,此列也應在DataTable中轉換。從數據表中選擇列並將其轉換爲數據表

這就是我想要的。

數據表(多列)>選擇一列>此列再次轉換到DataTable

我試試這個,但是這給我的完整數據表背。

DataTable dt = defindedDataTable.Columns[0].Table; 

回答

2

你可以從你的表DataView,然後使用DataView.ToTable方法。使用這種方法,你可以選擇一個或多個列,你想:

DataTable dt = defindedDataTable.DefaultView.ToTable(false, defindedDataTable.Columns[0].ColumnName); 
+0

也是一個解決方案 – Higune

+0

好,克里斯,我不知道'ToTable()'。 – DonBoitnott

+0

@DonBoitnott我知道這種方法,但30分鐘前,我不知道允許您選擇列的過載;-)。很有用。 – Chris

0

這將創建一個新表,插入一列,並用包含原始數據行填充:

DataTable dt = new DataTable(); 
DataColumn column = new DataColumn() 
{ 
    ColumnName = defindedDataTable.Columns[0].ColumnName, 
    DataType = defindedDataTable.Columns[0].DataType, 
    Expression = defindedDataTable.Columns[0].Expression, 
    ColumnMapping = defindedDataTable.Columns[0].ColumnMapping 
}; 
dt.Columns.Add(column); 
foreach (DataRow row in defindedDataTable.Rows) 
{ 
    DataRow newRow = dt.NewRow(); 
    newRow[defindedDataTable.Columns[0].ColumnName] = row[defindedDataTable.Columns[0].ColumnName]; 
    dt.Rows.Add(newRow); 
} 
+0

哎DonBoitnott,這是一個可行的辦法,但我沒有得到來自defindedDataTable的數據,有什麼不對勁的 – Higune

+0

你將不得不處理特定的行以從列中獲取數據,這是您的原始示例沒有顯示的,所以我編輯了一個通用的響應。 – DonBoitnott

+0

我想要一列的完整數據,我是否需要for循環遍歷所有行? – Higune

相關問題