Sollte ich SqlDataReader in einer using-Anweisung verwenden?

Welche der folgenden zwei Beispiele sind richtig? (Oder welches ist besser und soll ich verwenden)

Im MSDN habe ich folgendes gefunden:

private static void ReadOrderData(string connectionString)
{
   string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"

   using (SqlConnection connection = new SqlConnection(connectionString))
   {
       SqlCommand command = new SqlCommand(queryString, connection);
       connection.Open();

       SqlDataReader reader = command.ExecuteReader();

       // Call Read before accessing data.
       while (reader.Read())
       {
           Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
       }

       // Call Close when done reading.
       reader.Close();
   }
}

Auf anderen Seiten schlagen einige Benutzer jedoch vor, dies folgendermaßen zu tun:

private static void ReadOrderData(string connectionString)
{
   string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";

   using (SqlConnection connection = new SqlConnection(connectionString))
   {
       using (SqlCommand command = new SqlCommand(queryString, connection))
       {
          connection.Open();

          using (SqlDataReader reader = command.ExecuteReader())
          {
              // Call Read before accessing data.
              while (reader.Read())
              {
                    Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
              }
          }
       }
   }
}

Die Frage ist also: Soll ich das benutzen?using Aussage auch in derSqlCommand und in derSqlDataReader oder sie werden am Ende des automatisch entsorgtSqlConnection using Codeblock.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage