Originariamente inviato da binos1979
io in genere con oledb creo una variabile di tipo oledbdatareader
dim areader as OleDbDataReader e chiudo questa anziche la connessione
Esempio pratico:
Dim objCommand As New OleDbCommand(strsql2, objConn)
areader = objCommand.ExecuteReader()
areader.Close()
spero di aver capito quello che chiedevi
Per eseguire un update il datareader non ti serve a nulla, senza considerare che nell''esempio che hai postato la connessione non viene chiusa ma solo il datareader (per chiudere la connessione alla chiusura del datareader devi usare il CommandBehavior.CloseConnection sull'ExecuteReader)
Per la gestione della connessione sarebbe meglio fare all-in-one, ossia tutto nello stesso evento e in un blocco try/catch/finally tipo:
codice:
try
{
//apri la connessione, fai le operazioni che ti servono
}
catch(Exception e)
{
//catch dell'eventuale eccezione
}
finally
{
//chiudi la connessione se è aperta e fai il dispose
}
Io generalmente nelle applicazioni gestisco tutte le iterazioni con il database in un namespace apposito dove ho delle classi per connettermi/disconnettermi/eseguire query e stored procedure. se devo effettuare delle operazioni apposite estendo la classe "madre" e faccio quel che devo fare, altrimenti me la sfango con un:
codice:
ClasseDellaConnessione cdc = new ClasseDellaConnessione();
DataSet ds = cdc.DammiDataSet("SELECT xxx");
//oppure
DataSet ds = cdc.DammiDataSetParticolare();
//oppure
cdc.EseguiStaCippaDiInsert(xxx);
insomma, i metodi poi dipendono dalle esigenze