нам нужно использование для SqlCommand, или это достаточно только для SqlConnection и SqlDataReader

я взял этот код из MSDN

string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";

    using (SqlConnection conn = new SqlConnection(connString))
    {
      SqlCommand cmd = conn.CreateCommand();
      cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";

      conn.Open();

      using (SqlDataReader dr = cmd.ExecuteReader())
      {
        while (dr.Read())
          Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
      }
    }

поскольку Вы видите, что нет никакого использования для SqlCommand здесь, таким образом, делает это, должен быть?

5
задан Omu 12 February 2010 в 13:30
поделиться

2 ответа

Вам необходимо using для каждого создаваемого вами объекта, реализующего IDisposable. Это включает SqlCommand и SqlConnection.


Существует очень мало исключений из этого правила. Основным исключением являются клиентские прокси WCF. Из-за недостатка конструкции их метод Dispose иногда может выбросить исключение. Если вы используете прокси в операторе using, это второе исключение приведет к потере исходного исключения.

11
ответ дан 18 December 2019 в 11:56
поделиться

Вам не НЕОБХОДИМО использовать оператор using, но это хорошая практика, и вы ДОЛЖНЫ использовать Это. Он позволяет автоматически удалять объекты, использующие IDisposable.

http://msdn.microsoft.com/en-us/library/yh598w02 (VS.80) .aspx

Отредактировано для добавления ссылки и удаления неточного утверждения, потому что @John Saunders прав.

4
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: