Criar ADO.NET DataView mostrando colunas só selecionados
-
05-07-2019 - |
Pergunta
Em C # e .NET, se pode criar um DataView
que inclui apenas um correta ??em> subconjunto dos DataColumn
s de um determinado DataTable
?
Em termos de álgebra relacional, se atribui um RowFilter
, a fim de realizar uma operação de "seleção" (s). Como se iria realizar uma "projeção" operação (p)?
Solução
Você não pode fazer isso, mas você pode criar uma cópia da tabela com apenas as colunas que você deseja:
DataView view = new DataView(table);
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn");
Opcionalmente, você pode retornar linhas que têm valores distintos para as colunas selecionadas:
DataView view = new DataView(table);
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn");
Outras dicas
Bem, eu não consigo ver nenhuma razão para "querer" fazer isso ... Lembre-se, um DataView é apenas uma lista de ponteiros para as linhas da tabela original, e há obviamente nenhuma maneira de remover colunas da a tabela original ... pelo menos não sem afetar todas as outras funções utilizando aquela mesa ... Apenas use apenas as colunas que pretende ...
criar dataview como uma troca de uma tabela para outra tabela, e usar o dtswap como fonte de dados.
DataView dw = new DataView(dtfee);
DataTable dtswap = new DataTable();
dtswap = dw.ToTable(true,"Fees", "FeeAmount", "Year", "CollectorName", "Month");
DataSet
e seus tipos associados não têm capacidade de executar operações relacionais.