11

在 C# 和 .NET 中,可以创建一个DataView只包含给定 s 的适当子集的s吗?DataColumnDataTable

就关系代数而言,分配 aRowFilter是为了执行“选择”操作 (σ)。如何执行“投影”操作(π)?

4

4 回答 4

18

你不能这样做,但你可以创建一个只包含你想要的列的表的副本:

DataView view = new DataView(table);
DataTable table2 = view.ToTable(false, "FirstColumn", "SecondColumn", "ThirdColumn");

或者,您可以返回对所选列具有不同值的行:

DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
于 2009-07-29T16:15:09.340 回答
1

好吧,我看不出“想要”这样做的任何理由......请记住,DataView 只是指向原始表中行的指针列表,显然没有办法从原始表中删除列...至少不会影响使用该表的所有其他功能...只需使用您想要的列...

于 2009-07-29T15:58:05.427 回答
0

创建数据视图作为从一个表到另一个表的交换,并使用 dtswap 作为数据源。

DataView dw = new DataView(dtfee);
            DataTable dtswap = new DataTable();
            dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
于 2018-03-30T04:59:17.467 回答
-1

DataSet及其关联类型没有执行关系操作的能力。

于 2009-07-29T16:10:12.970 回答