Chiamata esplicita a Chiudi per una connessione db all'interno di un blocco utilizzando in C #?

2

È considerata una cattiva pratica chiamare Close per una connessione al database all'interno di un blocco using? ad esempio:

using (SqlConnection conn = new SqlConnection(sConn))
{
    cmd.Connection = conn;
    // do database stuff
    conn.Close();
}
    
posta Travis 21.02.2017 - 17:09
fonte

1 risposta

7

La documentazione MSDN per la chiusura il metodo già lo spiega. Dice (nella sezione Note):

The Close method rolls back any pending transactions. It then releases the connection to the connection pool, or closes the connection if connection pooling is disabled.

An application can call Close more than one time. No exception is generated.

If the DbConnection goes out of scope, it is not closed. Therefore, you must explicitly close the connection by calling Close or Dispose, which are functionally equivalent. If the connection pooling value Pooling is set to true or yes, this also releases the physical connection.

Questo significa che, mentre è sicuro chiamare Close() nel blocco using , non è necessario. Dispose() verrà chiamato quando il controllo del programma lascia il blocco using , che chiuderà automaticamente la connessione.

    
risposta data 21.02.2017 - 17:21
fonte

Leggi altre domande sui tag