Temos duas colunas em a DataTable
, assim:
COL1 COL2
Abc 5
Def 8
Ghi 3
Estamos tentando classificar isso com datatable
base COL2
em ordem decrescente.
COL1 COL2
ghi 8
abc 4
def 3
jkl 1
Tentamos o seguinte:
ft.DefaultView.Sort = "COL2 desc";
ft = ft.DefaultView.ToTable(true);
mas, sem usar um DataView
, queremos classificar o DataTable
próprio, não o DataView
.
Isso irá ajudá-lo ...
fonte
Sua função de uso simples .Selecione.
E está feito ...... Happy Coding
fonte
Select("", "CompanyName ASC")
.Talvez o seguinte possa ajudar:
Aqui, você pode usar outras consultas de expressão Lambda também.
fonte
Você tentou usar o
Select(filterExpression, sortOrder)
método no DataTable? Veja aqui um exemplo. Observe que esse método não classificará a tabela de dados no local, se é isso que você está procurando, mas retornará uma matriz classificada de linhas sem usar uma visualização de dados.fonte
Ou, se você pode usar um
DataGridView
, basta ligar paraSort(column, direction)
:O que daria o resultado desejado:
fonte
fonte
Há duas maneiras de classificar dados
1) classificando apenas os dados e preencha na grade:
2) classifique a visualização padrão semelhante à classificação com o cabeçalho da coluna da grade:
fonte
DataRow[] rows = dt.Rows.Cast<DataRow>().OrderBy(row => row.Field<string>("FIELD_NAME"), MyCustomComparer.Instance).ToArray();
Acontece que há um caso especial em que isso pode ser alcançado. O truque é criar a DataTable, coletar todas as linhas de uma lista, classificá-las e adicioná-las. Este caso acabou de aparecer aqui.
fonte
// Espero que isso ajude você ..
fonte
TL; DR
use
tableObject.Select(queryExpression, sortOrderExpression)
para selecionar dados de maneira ordenadaExemplo completo
Exemplo de trabalho completo - pode ser testado em um aplicativo de console :
Resultado
fonte
tente isto:
fonte
DataTable sortedDT = new DataTable()
. 2) Você precisa usarImportRow
(você não pode adicionar linha de diferentes tabela)