Como alterar a ordem das colunas da tabela de dados em c #.
Exemplo:
O pedido do tipo de tabela sql criado é Qty, Unit, Id, mas no programa DataTable o pedido é Id, Qty, Unit. No código Atrás, passo diretamente DataTable para o tipo de tabela sql para que a ordem da tabela seja diferente.
DataTable columns are: `Id,Qty,Unit.` I want this to be: `Qty,Unit,Id`
Por favor ajude
Qty,Unit,Id
mas a ordem do programa DataTable éId,Qty,Unit
. No código Atrás, passo diretamente DataTable para o tipo de tabela sql para que a ordem da tabela seja diferente. É por isso que me perguntam "como alterar a ordem das colunas?"Respostas:
Tente usar o método DataColumn.SetOrdinal . Por exemplo:
ATUALIZAÇÃO: Esta resposta recebeu muito mais atenção do que eu esperava. Para evitar confusão e facilitar o uso, decidi criar um método de extensão para ordenação de colunas em DataTable:
Método de extensão:
Uso:
ou
fonte
Qty,Id,Unit
only.I quero assimQty,Unit,Id
.Isso é baseado na resposta do "local padrão", mas removerá os nomes de coluna inválidos antes de definir o ordinal. Isso ocorre porque, se você enviar acidentalmente um nome de coluna inválido, ele falhará e se você fizer uma verificação para evitar que ele falhe, o índice estará errado, pois ele ignorará os índices sempre que um nome de coluna inválido for passado.
fonte
Eu sei que esta é uma pergunta muito antiga .. e parece que foi respondida .. Mas eu cheguei aqui com a mesma pergunta, mas um motivo diferente para a pergunta, e então uma resposta ligeiramente diferente funcionou para mim. Eu tenho um bom datagridview genérico reutilizável que pega a fonte de dados fornecida a ele e apenas exibe as colunas em sua ordem padrão. Coloquei aliases e ordem e seleção de colunas no nível tableadapter do conjunto de dados no designer. No entanto, a alteração da ordem de consulta selecionada das colunas não parece afetar as colunas retornadas pelo conjunto de dados. Descobri que a única maneira de fazer isso no designer é remover todas as colunas selecionadas no tableadapter, adicionando-as de volta na ordem em que você deseja que sejam selecionadas.
fonte
Se você tiver mais de 2-3 colunas, não
SetOrdinal
é o caminho a percorrer. O método de DataView aceita um array de parâmetros de nomes de colunas. Ordene suas colunas lá:ToTable
fonte
Podemos usar este método para alterar o índice da coluna, mas deve ser aplicado a todas as colunas se houver mais de dois números de colunas, caso contrário, ele mostrará todos os valores impróprios da tabela de dados ............ ........
fonte
Reordenando a tabela de dados com base em alguma condição ou caixa de seleção marcada. PFB: -
fonte