Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Lentezza caricamento DataGridView
venerdì 17 aprile 2015 - 00.46
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows 7
|
Visual Studio 2010
|
SQL Server 2008 R2
|
MySQL 5.5
|
Oracle 11g
|
Access (.mdb)
|
Office 2010
|
Crystal Reports XI
gabbito
Profilo
| Newbie
25
messaggi | Data Invio:
ven 17 apr 2015 - 00:46
Salve a tutti
io avrei questo tipo di problema. Ho una dataGridview NON associata a nessun DB la prima volta che eseguo il suo riempimento è velocissima se poi rieseguo una nuova ricerca l'applicativo si blocca per circa 20 secondi. Se chiudo la form e la riapro e eseguo nuovamente il popolamento è di nuovo veloce. Sto diventando pazzo a capire come risolvere il problema ovviamente la griglia in fase di caricamento viene resa invisibile. Vi è capitato anche a voi questo problema? Come l'avete risolto?
GRAZIEEEE
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
ven 17 apr 2015 - 08:11
Quando riempi da dove prendi i dati e che codice usi.
gabbito
Profilo
| Newbie
25
messaggi | Data Invio:
ven 17 apr 2015 - 10:38
Salve jekisi
per prima cosa riempio un datareader e con un loop leggo tutti i dati ed a "mano" li inserisco nella griglia. La cosa assurda è che quando apro per la prima volta la form il caricamento è velocissimo il problema nasce dalla seconda volta che vado a leggere i dati è come se rimanesse qualcosa in memoria che rallenta di brutto il caricamento della griglia.
willy_80
Profilo
| Senior Member
255
messaggi | Data Invio:
ven 17 apr 2015 - 11:22
Ciao probabilmente il rallentamento è dato dal fatto che per fare una ricerca devi puntare cella per cella leggerne il valore e confrontarlo col dato che vuoi ottenere.
Pure io nei miei programmi devo molto spesso gestire una discreta quantità di dati ma di solito butto sempre tutto in un dataset e passo alla datagrid la tabella che voglio visualizzare in modo che quando devo fare una ricerca è sufficiente eseguire una query nel dataset, trovo sia molto semplice e rapido, se gestisci i dati usando i controlli come supporto è inevitabile incappare nei classici ritardi dovuti a redraw grafici o simili.
Questa è la mia opinione.
gabbito
Profilo
| Newbie
25
messaggi | Data Invio:
ven 17 apr 2015 - 11:58
Ciao Willy
non è così scorro il datareader e lo inserisco in griglia e come ti ripeto la prima volta va che è un piacere anche con molti dati è dalla seconda volta che si verifica in debug risulta lento il comando di "add row" e non mi spiego proprio come sia possibile. Il fatto di riempire un dataset non è percorribile perché nel mio caso devo fare dei conteggi ed inserire dei totali per data e progressivo. Il problema è che rimane almeno credo qualcosa in griglia è come se non avesse più memoria anche se questa viene "resettata" tra impostazioni di clear riga e clear colonna ed il tutto impostato su nothing.
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
ven 17 apr 2015 - 13:57
Forse non ci siamo capiti.
Da dove prendi i dati.
Tu stai facendo una bella cavolata secondo me.
gabbito
Profilo
| Newbie
25
messaggi | Data Invio:
ven 17 apr 2015 - 14:30
Che cosa intendi per dove prendo i dati? TI posso dire che è un db sqlserver apro la connessione eseguo una executereader preparo la datagrid (NON LEGATA AD UN DATASET) inserendo le colonne che mi servono inizio il ciclo di lettura ad ogni loop faccio una addrow ... di cosa hai bisogno per capire dove sto sbagliando?
jekisi
Profilo
| Senior Member
460
messaggi | Data Invio:
ven 17 apr 2015 - 20:03
E perchè non fai un dataset e poi fai il resto?
Basterebbe fare un Fill
Mi sa che non posso aiutarti.
gabbito
Profilo
| Newbie
25
messaggi | Data Invio:
ven 17 apr 2015 - 22:26
Questo è un "pezzo" di codice che si trova all'interno del loop. In allegato il risultato che mostro a video
dgvRicerca.Rows.Add()
dgvRicerca.Rows(dgvRicerca.RowCount - 1).Height = 4
dgvRicerca.Rows.Add("", "", "", "", "", "", "", "", "", "", "", "IMPONIBILE", "", "", String.Format("{0:f2}", TotaleImponibile))
1129x927
221Kb
LA COSA STRANA TORNO A RIPETERE E' CHE LA PRIMA VOLTA E' VELOCE MA DALLE SECONDA VOLTA ANCHE SENZA CAMBIARE I CRITERI DI FILTRAGGIO CI METTE MOLTO TEMPO E' COME SE RIMANESSE QUALCOSA IN MEMORIA DELLA GRIGLIA.
Torna su
Stanze Forum
Elenco Threads
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 !