Создать ADO.NET DataView, показывая только выбранные столбцы
-
05-07-2019 - |
Вопрос
В C # & amp; .NET, можно создать DataView
, который включает только правильное подмножество DataColumn
данного DataTable
С точки зрения реляционной алгебры, каждый назначает RowFilter
для выполнения " выбора " операция (& # 963;). Как выполнить «проекцию»? операция (& # 960;)?
Решение
Вы не можете этого сделать, но вы можете создать копию таблицы только с теми столбцами, которые вам нужны:
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 - это просто список указателей на строки в исходной таблице, и, очевидно, нет никакого способа удалить столбцы из исходной таблицы ... по крайней мере, без ущерба для любой другой функции, использующей эта таблица ... просто используйте только те столбцы, которые вы хотите ...
создайте представление данных как своп из одной таблицы в другую таблицу и используйте dtswap в качестве источника данных. Р>
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
DataSet
и связанные с ним типы не способны выполнять реляционные операции.