Search code examples
c#.netdatatabledataviewdatacolumn

Create ADO.NET DataView showing only selected Columns


In C# & .NET, can one create a DataView that includes only a proper subset of the DataColumns of a given DataTable?

In terms of relational algebra, one assigns a RowFilter in order to perform a "selection" operation (σ). How would one perform a "projection" operation (π)?


Solution

  • You can't do that, but you can create a copy of the table with only the columns you want :

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

    Optionally you can return rows that have distinct values for the selected columns :

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