Jump to content

Datagridview Lenta


obamaself

Recommended Posts

Boas, eu carrego uma datagridview apartir de uma tabela para as colunas, e outra para as linhas.

O problema é que são mais de 100 colunas e 50 registos e demora muito tempo a carregar.

Há alguma maneira de pôr mais rapido?

Código:

 Dim DT As New DataTable
        DT = New DataTable("consultas")

        Dim lista_d As New List(Of Colunas)
        lista_d = Colunas_BD.Filtro
        For Each coluna As Colunas In lista_d ' Basicamente aqui adiciona as colunas que estão na base de dados
            DT.Columns.Add(coluna.nome)
        Next

            Dim ensaios_col As List(Of Ensaios_Colunas) = Ensaios_Colunas_BD.Lista_De_Ensaios_Colunas(registo.cod_relatorio)
            For Each coluna_ensaio As Ensaios_Colunas In ensaios_col
                Dim cooluna As Colunas = Colunas_BD.Procurar_Por_Codigo(coluna_ensaio.codigo)
                    novalinha(cooluna.nome) = coluna_ensaio.valor 'Aqui adiciona os registos
            Next
            DT.Rows.Add(novalinha)
        Next

        dg.DataSource = DT 'E aqui põe a datatable na datagridview

        Next
Link to comment
Share on other sites

100 colunas?

Acho que a melhor maneira de tornar mais rápido é reavaliares o teu modelo de dados 😁

Estou a contar mais "Next" do que ciclos. O problema pode estar no resto do código que omitiste.

Não sou fã de objectos de dados, mas penso que existam formas mais directas de dar uma tabela à datagrid, se esta pode ser resultado de uma query à base de dados.

So isso já te limpava uns ciclos por ali.

Um pequeno aparte:

Dim DT As New DataTable
DT = New DataTable("consultas")

deveria ser

Dim DT As New DataTable("consultas")

Da forma como tens estás a criar uma instância e de seguida a esmagá-la com outra.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.