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
Giusta logica per accedere a DB con le oledb
lunedì 16 aprile 2007 - 13.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ciuky
Profilo
| Newbie
25
messaggi | Data Invio:
lun 16 apr 2007 - 13:03
Ciattutti...
dopo aver risolto i miei vari problemi di accesso al db msde e fatto delle prove ora mi accingo a risolvere i problemi di prestazioni.
Quello che non mi è proprio chiaro è quale sia la giusta logica per accedere al db tramite le oledb, ossia:
come ovunque documentato i passi sono:
creare la connessione:
oledbcon = new System.Data.OleDb.OleDbConnection("Provider=sqloledb;Data Source=server;Initial Catalog=nomedb;User Id=sa;Password=password;");
istanzio l'oledbcommand:
OleDbCommand myAccessCommand = new OleDbCommand("select * from articoli",oledbcon );
istanzio l'adapter:
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
apro la connessione:
oledbcon .Open();
e gestisco l'adapter magari alimentandoci un dataset
myDataAdapter.Fill(myDataSet);
quello che mi è poco chiaro è:
una volta alimentato il dataset con i dati provenienti dall'adapter...posso chiudere la connessione?
se sono nel loop di lettura del datatable proveniente dal dataset:
foreach (DataRow dr in myDataSet.Tables[0].Rows)
{
e qui ho necessittà di effettuare una nuova select su una diversa tabella dello stesso db, cosa debbo fare?
le stesse operazioni effettuate per la gestione della prima select saprendo una diversa connessione o sfruttando la stessa ?
}
ecco...questo mi è davvero poco chiaro...
qualcuno mi saprebbe illuminare?
grazie in anticipo
Red
dedalo.nel.labirinto
Profilo
| Newbie
33
messaggi | Data Invio:
sab 5 mag 2007 - 21:38
una volta aperta la connessione con il metodo Open() puoi mantenerla finchè ne hai bisogno,
non è necessario crearne una nuova, ma solo un nuovo comando per l'altra select.
se chiami il metodo Fill() senza aprire tu la connessione, sarà il DataAdapter stesso a gestirla,
e quindi una volta chiamato il metodo Fill si occuperà lui di aprirla e poi chiuderla una volta eseguito il comando.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
dom 6 mag 2007 - 09:54
Non è per niente necessario aprire la connessione per dare i comandi sul dataadapter.
Se la connessione è aperta la usa, poi ci devi pensare tu a chiuderla.
Se la connessione invece non è aperta il dataadapter la apre e chiude automaticamente prima e dopo il proprio lavoro.
dedalo.nel.labirinto
Profilo
| Newbie
33
messaggi | Data Invio:
dom 6 mag 2007 - 11:24
si era quello che intendevo dire.
se viene aperta una connessione esplicitamente con Open() allora possono essere eseguiti diversi i comandi sfruttando sempre quella e chiudendola nel momento in cui non sia più necessaria con Close(), senza doverne aprire una per ogni singolo comando.
se la connessione non viene aperta esplicitamente con il metodo Open() allora sarà il DataAdapter a gestirla, aprendola e poi infine chiudendola ogni volta che viene eseguito un comando.
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 !