在C#& .NET,可以创建DataView
只包含给定DataColumn
的{{1}}的正确的子集吗?
就关系代数而言,为了执行“选择”操作(σ),我们指定DataTable
。如何进行“投影”操作(π)?
答案 0 :(得分:13)
您不能这样做,但您可以只使用所需的列创建表的副本:
DataView view = new DataView(table);
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn");
您可以选择返回具有所选列的不同值的行:
DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
答案 1 :(得分:1)
好吧,我看不出任何“想要”这样做的理由......记住,DataView只是原始表中行的指针列表,显然没有办法从列中删除列原始表...至少不会影响使用该表的所有其他功能...只需使用您想要的列...
答案 2 :(得分:0)
将dataview创建为从一个表到另一个表的交换,并使用dtswap作为数据源。
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
答案 3 :(得分:-1)
DataSet
及其关联类型无法执行关系操作。