NUMERAR LINHA EM GRID

NICKOSOFT 03/02/2016 18:18:37
#457009
mas numera corretamente nas vezes seguintes, pq o código pega o numero de linhas do grid como referencia....a primeira execução não tem linhas, depende a forma q trata o grid na segunda execução ele tem o numero de linha da primeira execução, por ex 10, se forem mais de 10 itens creio q haverá algum problema....
tenta no for usar o dataset.table.rows.count-1, ai conforme seu caso se for dataset, se for datatable vc adapta...
e o ideal pra disparar a função seria zerar por completo o grid tmb....
NILSONTRES 03/02/2016 19:08:55
#457013
Uma tarefas simples, ficou complicada, isso tudo porque carrega o controle vinculado datasource(ou a base, como queiram), por isso é que insisto que o melhor é carregar na unha, principalmente grid que é uma baita ferramenta de manuseio.
Nesse caso vc fica amarrado, a quem discorde, mas eu nunca me convenci, grid se carrega é no for next ou no while datared.red mesmo.
NICKOSOFT 03/02/2016 20:04:09
#457015
nossa nilson, não entendo pq esse rancor no coração kkkkk
de qq forma fiz e testei, muito simples de resolver....
  
DataGridView1.DataSource = ds.Tables(0)[ô]preencho o grid
DataGridView1.Columns.Add([Ô]Numero[Ô], [Ô]Numero[Ô])[ô]crio uma coluna no grid e segue o for como sugeri alimentando essa coluna, na forma q já havia sido sugerido
For i = 0 To ds.Tables(0).Rows.Count - 1
DataGridView1.Rows(i).Cells([Ô]Numero[Ô]).Value = (i + 1)
Next
GUIMORAES 04/02/2016 10:11:16
#457043
Citação:

:
Uma tarefas simples, ficou complicada, isso tudo porque carrega o controle vinculado datasource(ou a base, como queiram), por isso é que insisto que o melhor é carregar na unha, principalmente grid que é uma baita ferramenta de manuseio.
Nesse caso vc fica amarrado, a quem discorde, mas eu nunca me convenci, grid se carrega é no for next ou no while datared.red mesmo.



Nilson, realmente é melhor carregar a grid manualmente, sem passar um dataSource, pois você não fica amarrado a mesma para qualquer alteração.

MFLAVIO,
Verifique como você está chamando o seu método para carregar a grid, pois o exemplo que passei deverá ser executado após a grid estar com registros, assim como o NICKOSOFT explicou acima.
MFLAVIO 04/02/2016 14:49:06
#457065
Citação:

:
:
Uma tarefas simples, ficou complicada, isso tudo porque carrega o controle vinculado datasource(ou a base, como queiram), por isso é que insisto que o melhor é carregar na unha, principalmente grid que é uma baita ferramenta de manuseio.
Nesse caso vc fica amarrado, a quem discorde, mas eu nunca me convenci, grid se carrega é no for next ou no while datared.red mesmo.


Nilson, realmente é melhor carregar a grid manualmente, sem passar um dataSource, pois você não fica amarrado a mesma para qualquer alteração.

MFLAVIO,
Verifique como você está chamando o seu método para carregar a grid, pois o exemplo que passei deverá ser executado após a grid estar com registros, assim como o NICKOSOFT explicou acima.



o projeto usa o Grid Vinculado a um dataSet ligado ao Firebird

Descobri algo

se eu verificar pela immediate Window a linha esta numerada
mais não aparece no grid em tela
mesmo eu aplicando um refresh não mostra, fica a Coluna Linha em branco com o restante do Grid carregado
NICKOSOFT 04/02/2016 18:47:16
#457084
já testei o código q postei e funcionou desde a primeira execução
OMAR2011 04/02/2016 20:13:46
#457092
Testei seu código NICKOSOFT.
Bem interessante e fácil colocação dentro de uma consulta.
Bom mesmo.
Vivendo e aprendendo.
DS2T 05/02/2016 02:56:31
#457116
Terei que discordar com os colegas a respeito do DataSource. é muito reconfortante saber que tem um DataTable na memória e que não precisarei trabalhar com os dados do DataGridView diretamente. Além do mais, o DataTable oferece uma versatilidade muito grande. Após a consulta, você pode adicionar colunas e fazer operações a vontade com seus dados e depois só mostrar no DataGrid.

Esse é um exemplo clássico de como poderiamos adicionar uma coluna no DataTable após a consulta para ser mostrado pro usuário.
DataTable.Columns.Add...

E ir adicionando o índice nessa coluna.


[Ô]Ahhh, mas cara, eu não quero adicionar uma coluna no DataTable após a consulta[Ô].

Não criemos pânico!
Você ainda pode fazer isso direto na sua expressão SQL. Existe uma função no SQL Server chamada ROW_Number, que faz exatamente isso que você tá querendo.
Segue um pequeno exemplo que fiz com uma base de dados que tava usando aqui:

SELECT ROW_NUMBER() OVER (ORDER BY valor ASC ) AS Numeracao, expressao From expressoes

Sendo:

A numeração das linhas ordenadas pelo valor em ordem ascendente;
expressao o nome de um campo da tabela;
expressoes o nome da tabela;

Abraços!
NICKOSOFT 05/02/2016 06:05:46
#457120
Citação:

:
Testei seu código NICKOSOFT.
Bem interessante e fácil colocação dentro de uma consulta.
Bom mesmo.
Vivendo e aprendendo.


sim sim, mais uma vez, modifiquei o mínimo possível da sugestão já dada....
outra forma mais pratica e mais usual é a q o D2ST sugeriu, em um grande retorno de dados se torna muito mais rápido....
Página 2 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas