Supponiamo che io ho il seguente codice:L'istruzione using C# esegue try/finally?
private void UpdateDB(QuoteDataSet dataSet, Strint tableName)
{
using(SQLiteConnection conn = new SQLiteConnection(_connectionString))
{
conn.Open();
using (SQLiteTransaction transaction = conn.BeginTransaction())
{
using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM " + tableName, conn))
{
using (SQLiteDataAdapter sqliteAdapter = new SQLiteDataAdapter())
{
sqliteAdapter.Update(dataSet, tableName);
}
}
transaction.Commit();
}
}
}
Il C# documentazione afferma che con una dichiarazione using
l'oggetto all'interno del campo di applicazione sarà smaltito e ho visto molti posti dove è suggerito che non abbiamo bisogno di usare la clausola try/finally.
Di solito mi circondano le connessioni con un try/finally, e chiudo sempre la connessione nella clausola finally. Dato il codice di cui sopra, è ragionevole presumere che la connessione verrà chiusa se c'è un'eccezione?
Simile a http://stackoverflow.com/questions/278902/ using-statement-vs-try-finally –
Non è una risposta alla tua domanda. Si prega di leggere sugli attacchi sql injection. –