rocker_003 Ответов: 1

Что произошло, когда объект соединения не замкнулся в себе ADO.NET


открытие соединения, выполнение команды внутри этого соединения, после чего мы забыли закрыть это открытое соединение. так что же происходит, когда мы не закрываем связь? И скажите мне ясное объяснение с концепцией объединения соединений.

Что я уже пробовал:

cmd = new SqlCommand(cmdStr, conObj);
conObj.Open();
affected_row = cmd.ExecuteNonQuery();

1 Ответов

Рейтинг:
2

#realJSOP

Если вы не закрываете соединение sql, вы уменьшаете количество соединений, доступных в пуле соединений.

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

try
{
    using (SqlConnection conObj = new SqlConnection("connection string"))
    {
        conObj.Open();
        using (SqlCommand cmd = new SqlCommand(cmdStr, conObj))
        {
            affected_row = cmd.ExecuteNonQuery();
        }
    }
}
catch (Exception ex)
{
    // do something with exception
}


Если вам нужны интимные подробности по этому вопросу, простой поиск в google покажет тысячи достойных объяснений.