从数据表中选择列并将其转换为另一个数据表

3
我希望在C#中选择一个DataTable中的一列,这一列也应该被转换成另一个DataTable。
这就是我想要的。
DataTable(多个列) > 选择一列 > 将此列再次转换为 DataTable 我已经尝试过这样做,但是它会返回完整的DataTable。
DataTable dt = defindedDataTable.Columns[0].Table;
2个回答

3
你可以从表格中获取 DataView,然后使用DataView.ToTable 方法。使用此方法,您可以选择一个或多个列:
DataTable dt = defindedDataTable.DefaultView.ToTable(false, defindedDataTable.Columns[0].ColumnName);

不错,Chris。我不知道 ToTable() - DonBoitnott
@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);
}

嘿DonBoitnott,这是一种可能的方法,但我没有从defindedDataTable获取数据,有什么问题吗? - Higune
你需要指定一个特定的行来获取列中的数据,这是你原始示例没有展示的,因此我已经编辑了一个通用响应。 - DonBoitnott
我想要一列的完整数据,我需要在所有行上使用for循环吗? - Higune

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接