DÊVIDA CARREGANDO DATAGRIDVIEW
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()
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()
[ô]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.
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.
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 ?
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.
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