2013-06-19 28 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

相关问题