obamaself Posted February 24, 2012 at 01:52 PM Report Share #441002 Posted February 24, 2012 at 01:52 PM 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 More sharing options...
ribeiro55 Posted February 24, 2012 at 02:03 PM Report Share #441003 Posted February 24, 2012 at 02:03 PM 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 More sharing options...
obamaself Posted February 24, 2012 at 02:08 PM Author Report Share #441005 Posted February 24, 2012 at 02:08 PM o código que omiti, eram umas colunas que adicionei á mão e assim. Aquele next a mais era para preencher essas colunas que não pertencem á base de dados. Conheces alguma maneira mais rápida? Link to comment Share on other sites More sharing options...
Caça Posted February 24, 2012 at 02:40 PM Report Share #441007 Posted February 24, 2012 at 02:40 PM Se a DataGrid já estiver previamente formatada, ao preencher torna-ser muito lenta, no entanto fazer consultas dentro de um ciclo não é nada bom para o desempenho.. Pedro Martins Não respondo a duvidas por PM Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now