A seconda se va fuori dal campo di applicazione o meno. Se lo fa verrà comunque chiuso e restituito il pool di connessione (dato che non l'hai disabilitato). Quindi chiamare in modo implicito o esplicito come si sta facendo rende chiaro il tuo intento e rende questa connessione "istantaneamente" disponibile per il riutilizzo nel pool.
L'idea era di convincere gli sviluppatori a entrare e uscire dal db veloce. Un sacco di piccole transazioni. Non il vecchio stile apre una connessione e poi la nasconde in modo che nessun altro possa raggiungerla, nel caso in cui fosse necessario nuovamente.
Se il pool di connessioni è nella clausola a using equivale a Create, open, Close. Se è spento, una clausola using equivale a creare, aprire, chiudere, Dispose.
In entrambi gli scenari, il vero affare è assicurarsi che vada fuori campo. A parte rarissime circostanze, la connessione dovrebbe essere un riferimento locale e avere una durata di questo particolare uso. Generalmente non si crea un'istanza in fase di esecuzione e si rende una proprietà della propria mainform per intance.
fonte
2013-01-14 15:41:53
Quanto è difficile racchiudere ogni connessione con un'istruzione 'using'? L'ho fatto un'abitudine e la uso ovunque. – mellamokb
'.Close' probabilmente non dispone della connessione perché è possibile richiamare facilmente' .Open' per riaprire la connessione. – mellamokb
@mellamokb. Dato che il pooling è attivo, è possibile creare facilmente la connessione nuovamente e correttamente. Il pool non lo smaltirà fino a quando non sarà inattivo per 2 minuti (predefinito) –