View Full Version : [VB.NET] Programma in rete: accorgimenti
OrcaAssassina
02-02-2008, 09:05
Ho un programma in VB.NET
Ho un DB in SQLSERVER2005
Devo far lavorare il programma in rete
Mi date alcuni accorgimenti sulla costruzione.
Ad esempio,
- apro la connesione
- carico dati in dataset
- passo il dataset ad una griglia
- poi chiudo dataset
- chiudo la connessione
Ora devo fare un ADD
- apro la connessione
- eseguo la INSERT
- chiudo la connessione
Va bene cosi???
Ditemi voi qualè il criterio migliore
Ciao e grazieeeeee
simoneart
02-02-2008, 11:09
In un programma io creerei un'istanza di connessione all'avvio del programma e la manterrei attiva per tutta la durata dell'esecuzione, chiudendola solo all'uscita del programma.
Ti devi preoccupare una volta sola dell'apertura e chiusura della connessione e essendo ADO.NET un sistema di accesso ai dati disconnesso non dovrebbe comportare nessuna differenza prestazionale (se non un miglioramento non avendo la necessità di effettuare la connessione ogni volta).
Ovviamente dipende dal cosa la tua applicazione è destinata a fare.
L'approccio suggerito da simoneart non è sbagliato, ma offre poca flessibilità.
Pensa se ti dovessi servire di connessioni multiple...
ADO.NET gestisce il pooling delle connessioni.
Semplificando i metodi Open e Close non aprono e chiudono direttamente una connessione.
Open richiede una connessione libera che risiede nel pool che viene poi lockata.
Close (analogamente a Dispose) la libera rendendola disponibile a chiunque ne faccia richiesta.
Se siete interessati all'argomento con una googlata trovate un po' di informazioni.
Per essere sicuri che una connessione venga liberata dopo essere stata utilizzare potete usare gli approcci seguenti:
using (SqlConnection myCon = new SqlConnection(connectionString))
{
myCon.Open();
// fai quello che devi fare
}
SqlConnection myCon = new SqlConnection(connectionString);
try
{
myCon.Open();
// fai quello che devi fare
}
catch ()
{
// gestisci le eccezioni che devi gestire
}
finally
{
myCon.Close(); // oppure myCon.Dispose()
}
Il mio consiglio quindi è quello di istanziare un oggetto connessione, di aprirlo immediatament prima di servirtene e di chiuderlo non appena non ti sia più utile.
Scusa per il codice in C#, ma non avevo voglia di cercare la sintassi in VB.NET
'iao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.