Lentezza ne popolare una dataGridView

venerdì 01 dicembre 2006 - 17.09

sisco22 Profilo | Newbie

Salve a tutti, devo popolare una dataGridView con una tabella di circa 60000 record
il processo è abbastanza lento...

Qualcuno mi sa dire come posso fare a rendere il tutto, almeno in apparenza più veloce.

Grazie
Francesco Benini

0v3rCl0ck Profilo | Guru

Ciao,

utilizzi già i thread? con i thread puoi evitare di fare blocare l'applicazione...

un altra soluzione per velocizzare l'inserimento sulla griglia è di bloccare l'auto aggiornamento grafico, con il metodo SuspendLayout

togliere alla griglia l'auto resize delle colonne, oppure di modificarne il tipo di resize.


Enjoy it

freeteo Profilo | Guru

ciao,
Effettivametne il numero di dati da visualizzare è tantino, ovvio che sia lento, non hai tante alternative, anche perche' se li carica in memroia oltre che visualzzarli quindi perdi anche in pesantezza dell'applicativo.

Cmq oltre all'aspetto grafico correttamente espresso da overclock, io mi chiedo che senso puo' avere una griglia di 60000 record a video, ovvero mi chiedo:
- cosa deve farne l'utilizzatore?
- ha bisogno di tutti questi record per forza?

io visualizzerei magari gli ultimi 100 record inseriti, facendo una query tipo:
select top 100 * from tabella order by id desc
oppure lavorerei con filtri, in modo da far fare una ricerca "mitrata" alle necessita' reali di chi vuole una griglia di dati.

Oppure puoi sfruttare gli SqlDataAdapter e OleDbDataAdapter che hanno degli overload del metodo "Fill" che fanno la paginazione, ovvero decidi che range di record caricare e quindi visualizzare in griglia.
Fai presto poi usando qualche pulsante e qualche variabile locale al form a fare una navigazione efficente, senza appesantire troppo l'applicativo...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

sisco22 Profilo | Newbie

Si è vero non ha nessun senso...
la mia è una finestra utilizzata per le ricerche, dove popolo,in questo caso, la grid con tutte le righe contenute in una tabella per le movimentazioni di magazzino, dove di default, alla in prima istanza carico tutte le righe.
In effetti non serve a niente caricare la griglia con tutti i dati. La soluzione migliore è modificare il comportamento di default della mia finestra di ricerca limitandolo ad un top 100, magari anche meno.

Tanto è che poi il tutto si traduce con una query di selezione con un numero di righe limitate al valore della clausola where in base al valore che l'utente desidera cercare.

Grazie per l'uaito.
Francesco Benini
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5