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
[VS2008] refresh di una tabella con molti record
sabato 04 aprile 2009 - 19.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
danpres
Profilo
| Newbie
17
messaggi | Data Invio:
sab 4 apr 2009 - 19:35
salve a tutti,
devo leggere i dati di una tabella di sqlserver che ha 80/100mila records, e la normalissima FILL di un sqldataadapter anche se un pò lenta mi va benissimo all'inizio (apertura schermata).
Il problema si presenta quando altri utenti inseriscono/modificano i record di questa tabella.
In poche parole la mia griglia del mio form, dovrebbe auto refresharsi senza chiudere e riaprire la schermata.
Ci sono modi per prendere solo i record cambiati senza ripetere una FILL ?
Gli aggiornamenti della griglia devono avvenire in tempo reale (ogni 1 o 2 secondi), se ripeto la fill è troppo lento e perderei le informazioni del record correntemente visualizzato.
Ci sono soluzioni ?
Dampyr
Profilo
| Junior Member
169
messaggi | Data Invio:
lun 6 apr 2009 - 12:41
>
>salve a tutti,
>
>devo leggere i dati di una tabella di sqlserver che ha 80/100mila
>records, e la normalissima FILL di un sqldataadapter anche se
>un pò lenta mi va benissimo all'inizio (apertura schermata).
>
>Il problema si presenta quando altri utenti inseriscono/modificano
>i record di questa tabella.
>
>In poche parole la mia griglia del mio form, dovrebbe auto refresharsi
>senza chiudere e riaprire la schermata.
>Ci sono modi per prendere solo i record cambiati senza ripetere
>una FILL ?
>Gli aggiornamenti della griglia devono avvenire in tempo reale
>(ogni 1 o 2 secondi), se ripeto la fill è troppo lento e perderei
>le informazioni del record correntemente visualizzato.
>
>Ci sono soluzioni ?
Certo che ci sono...
Al volo e, in parole povere, mi viene in mente che al posto di usare sqldataadapter come datasource del grid, potresti usare un dataset (o datatable) riempito con i record che hai caricato con la fill dalla tabella.
Questa tabella deve avere dei campi per poter controllare quando i record sono stati inseriti e quando sono stati modificati.
Ogni volta che devi fare l'update fai una query (forse anche LINQ ti può venire in aiuto) che ti recupera solo i dati inseriti dopo l'ultimo orario dell'update (che ti sei messo via in una variabile).
Con questi dati, se hanno la data di inserimento uguale a quella di update (cioè il record è nuovo) lo inserisci nel dataset, invece, se i due valori sono diversi (modifica), fai una bella ricerca nel dataset e ti modifichi i record.
Un bel refresh del grid e tutto dovrebbe funzionare.
Altra cosa è per i record eliminati, li dovresti implementare una funzioncina che faccia un minimo di controllo sui dati, magari tramite un id.
... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...
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 !