创建仅显示选定列的ADO.NET DataView

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

就关系代数而言,为了执行“选择”操作(σ),我们指定一个RowFilter 。 如何执行“投影”操作(π)?

您不能这样做,但您可以只使用所需的列创建表的副本:

 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"); 

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

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

 DataView dw = new DataView(dtfee); DataTable dtswap = new DataTable(); dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month"); 

DataSet及其关联类型无法执行关系操作。