Pergunta

Em C # e .NET, se pode criar um DataView que inclui apenas um correta subconjunto dos DataColumns 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)?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top