rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

C# - Должен ли я закрыть () SQLConnection до его удаления?

Больше
3 мес. 1 нед. назад #299 от О.Коровяков
В другом вопросе здесь об одноразовых объектах , следует ли мы называть Close() до конца используемого блока?
using (SqlConnection connection = new SqlConnection())
using (SqlCommand command = new SqlCommand())
{
    command.CommandText = "INSERT INTO YourMom (Amount) VALUES (1)";
    command.CommandType = System.Data.CommandType.Text;
 
    connection.Open();
    command.ExecuteNonQuery();
 
    // Is this call necessary?
    connection.Close();
}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 1 нед. назад #300 от О.Коровяков
Поскольку у вас есть используемый блок, будет вызываться метод Dispose SQLCommand и он закроет соединение:
// System.Data.SqlClient.SqlConnection.Dispose disassemble
protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }
    this.DisposeMe(disposing);
    base.Dispose(disposing);
}


.
this._poolGroup = null; означает, что соединение не возвращается в пул соединений? так что у меня будет n-1 соединений? – Royi Namir 09 май 2013, в 10:02

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 1 нед. назад #301 от О.Коровяков
Разборка SqlConnection с помощью .NET Reflector:
protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._userConnectionOptions = null;
        this._poolGroup = null;
        this.Close();
    }
 
    this.DisposeMe(disposing);
    base.Dispose(disposing);
}

Он вызывает Close() внутри Dispose()

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 1 нед. назад #302 от О.Коровяков
Нет, вызов Dispose() в SqlConnection также вызывает Close().

MSDN - SqlConnection.Dispose()

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

Весь процесс строительства описан на страницах сайта, но более подробно о технологии, методах строительства, и всех деталях - Вы можете узнать в книге.