title: Does a C# using statement perform try/finally?
body: <p>Suppose that I have the following code:  </p>
  
  <pre><code>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();
          }
      }
  }
  </code></pre>
  
  <p>The C# documentation states that with a <code>using</code> statement the object within the scope will be disposed and I've seen several places where it's suggested that we don't need to use try/finally clause.  </p>
  
  <p>I usually surround my connections with a try/finally, and I always close the connection in the finally clause. Given the above code, is it reasonable to assume that the connection will be closed if there is an exception?</p>