Вы должны очистить соединение, когда вы закончите, независимо от исключения или успеха, но это не обязательно означает вызов Close
. Чаще всего вы просто используете оператор using
, который вызывает API очистки (Dispose()
) при выходе из области видимости. Это очень просто:
using (SqlConnection con = new SqlConnection(conString))
using (SqlCommand cmd = new SqlCommand(query, con))
{
con.Open();
//Something
}
Или в более поздних версиях C#, если using
будет заканчиваться в конце родительской области:
using var con = new SqlConnection(conString);
using var cmd = new SqlCommand(query, con);
con.Open();
//Something