PDA

View Full Version : ado.net modalità connessa o disconnessa?


Simo8012
30-03-2007, 23:50
Salve a tutti, dovrei realizzare un applicativo in vb.net che interroga un db access in rete locale LAN.
Con ADO usavo il recordset, con ado.net c'è tutto il discorso del dataadapter, del dataset che non mi è ben chiaro..qualcuno che mi sa dare info più precise? ps. io non voglio che il mio db si copi in una cache le info del db, poichè devono sempre essere aggionratissime.
2) ma per popolare una griglia (in visual studio 2003) l'unica soluzione è associarla al dataset?
3) Il mio applicativo deve poter accedere a diverse tabelle del db access, ma per ogni tabella che mi serve devo creare una dataadapter diversa?
Grazie dell'aiuto...sono un pò alle prime armi...

Simo8012
02-04-2007, 14:35
nessuno mi sa dare qualche consiglio?

Einstein
02-04-2007, 20:45
Il discorso sulla modalità connessa o disconnessa è un po' troppo lungo per essere spiegato in un post. L'usare l'uno o l'altro dipende da quello che vuoi fare. Il Dataset non fa una cache di tutto il db (ci mancherebbe), ma è molto utile per avere in memoria uno snapshot di una parte dei dati del tuo db, che ti serve, magari per popolare i controlli di una Windows Form o di una Web Form. Inoltre ha una forte integrazione con l'ambiente di sviluppo, che non è mai un male.
Il dataset (o la datatable) non è l'unico modo per popolare il contenuto dei controlli. Parlando di insiemi di dati, tipo una grid, la puoi popolare con una qualsiasi classe che implementa l'interfaccia IList (tipo un ArrayList).
Conta infine che la modalità disconnessa (Dataset/DataAdapter) e modalità connessa (DataReader) non si escludono a vicenda: potresti popolare una grid tramite una datatable e le dropdownlist con degli ArrayList derivati dallo scorrimento di un DataReader.
Ti consiglio magari di approfondire meglio questi argomenti su MSDN prima di buttarti a scrivere codice. Se hai sempre usato ADO "classic", ADO.NET è piuttosto diverso.

Ciao :)

Simo8012
03-04-2007, 14:07
grazie dell'aiuto...ho iniziato a fare qulacosa usando il recorset ado leggendo i valori e copiandoli a run-.time nei vari textbox ecc...poichè la mia applicazione deve sempre leggere dati aggiornati. Cioè in questo db ci lavorano contemporanemante più persone, allora il mio dubbio è: ma con il dataset e il dataadapter devo star li sempre a fare il fill o c'è un altro metodo per farlo?

Einstein
03-04-2007, 20:27
I dati aggiornati li hai ogni volta che un utente fa una richiesta esplicita (tipo: preme il pulsante "Aggiorna" un una form). Solo in quel momento avrai un accesso alla base dati (quindi fai la Fill() del caso).
Una volta che la richiesta è stata soddisfatta, il dataset ti permette di avere uno snapshot disconnesso, e quindi avere i dati richiesti consultabili offline dal tuo client senza occupare risorse sul Db.