DÊVIDA CARREGANDO DATAGRIDVIEW

MARCONDES 25/06/2014 08:41:53
#439151
Bom dia senhores,

Estou com a seguinte dúvida

Estou carregando o DatagridView conforme código abaixo
a dúvida é a seguinte

a declaração : Dim row As New DataGridViewRow()
está dentro do FOR, isto não sobrecarrega a memória declarando diversas vezes ?
já tentei declarar fora do For porém sem sucesso, alguem tem alguma outra opção para carregar o DataGridView deconectado ?

strSQL = [Ô]SELECT * FROM tbl_ProdutosGrupo[Ô]

AbreConexao()

CarregarDataSet(strSQL)

[ô]-----------------------------------------
[ô]Carrega dados da base diretamento no grid
[ô]DataGridView1.DataSource = oDataTable
[ô]-----------------------------------------

For Each oDataRow In oDataTable.Rows

If Not oDataRow Is DBNull.Value Then

Dim row As New DataGridViewRow()

[ô] [ô]Indica em qual controle (a grosso modo) eu vou criar as rows (linhas)
row.CreateCells(DataGridView1)

[ô] [ô]Crio as linha
row.Cells(0).Value = oDataRow([Ô]Codigo[Ô])
row.Cells(1).Value = oDataRow([Ô]Descricao[Ô])
[ô]Adiciono as rows (linhas)
DataGridView1.Rows.Add(row)

End If

Next

FechaConexao()

NILSONTRES 25/06/2014 09:10:19
#439152
[ô]Anula isso aqui(Dim row As New DataGridViewRow())
DataGridView1.rows.add
DataGridView1.rows(DataGridView1.rows.count-1).cells(0).value=oDataRow([Ô]Codigo[Ô])

Outra coisa que aconselho para evitar futuros erros, de nome as suas colunas, pois assim vc altera as posições dela quando quiser, sem ter que alterar o codigo.
Ao inves de [Ô].cells(0)[Ô], faça .cells(colunacodigo.Name)
Porque no decorrer do projeto, em muitas situações, vc condiciona uma ação sempre se clicado em derterminada coluna., o que acontece é que
quando vc precisa mudar uma coluna de posição tem que alterra o codigo, mas acaba esquecendo, ai então toma erros. nesse fazendo como eu disse,
isso não acontece.
MARCONDES 25/06/2014 09:23:32
#439153
Citação:

:
[ô]Anula isso aqui(Dim row As New DataGridViewRow())
DataGridView1.rows.add
DataGridView1.rows(DataGridView1.rows.count-1).cells(0).value=oDataRow([Ô]Codigo[Ô])

Outra coisa que aconselho para evitar futuros erros, de nome as suas colunas, pois assim vc altera as posições dela quando quiser, sem ter que alterar o codigo.
Ao inves de [Ô].cells(0)[Ô], faça .cells(colunacodigo.Name)
Porque no decorrer do projeto, em muitas situações, vc condiciona uma ação sempre se clicado em derterminada coluna., o que acontece é que
quando vc precisa mudar uma coluna de posição tem que alterra o codigo, mas acaba esquecendo, ai então toma erros. nesse fazendo como eu disse,
isso não acontece.




Na verdade coloquei o código para criar as colunas no Form_Load

[ô]Adiciona colunas ao DataGridView
DataGridView1.Columns.Add([Ô]codigo[Ô], [Ô]Código[Ô])
DataGridView1.Columns.Add([Ô]descricao[Ô], [Ô]Descrição[Ô])

[ô]Define largura das colunas
DataGridView1.Columns([Ô]codigo[Ô]).Width = 50
DataGridView1.Columns([Ô]descricao[Ô]).Width = 398

Sendo assim como ficaria meu For ?
OCELOT 25/06/2014 09:44:14
#439154
Resposta escolhida
Não tem problema você criar ela várias vezes, este é o esperado, você precisa de 1 objeto do tipo DataGridViewRow para cada linha, afinal cada objeto representa apenas uma linha.

Usar o Add da forma como o NILSOARES passou vai criar um novo objeto destes também, então tando da forma como ele fez quando da que você fez está correto.

Tópico encerrado , respostas não são mais permitidas