Создать ADO.NET DataView, показывая только выбранные столбцы

StackOverflow https://stackoverflow.com/questions/1201255

Вопрос

В 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 и связанные с ним типы не способны выполнять реляционные операции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top