Вы обязательно должны открыть свои соединения как можно позже и закрыть их как можно скорее.
Не только вы должны закрыть их, когда вы закончите, но: вы должны закрыть их даже между тесно связаннымикоманды, если между ними вообще есть любой другой код.На самом деле, позвольте мне сказать это так: закройте ваши объекты ADO.NET Connection так быстро и часто, как вы можете.(то есть не совершайте явно глупых действий, чтобы закрывать соединения, которые явно не должны закрываться)
По умолчанию поставщик ADO.NET для SQL Server (а также большинство других известных поставщиков) предоставляютпул соединений.Это фактически будет управлять созданием и уничтожением этих соединений для вас - но только если вы закроете их, когда закончите.
Если вы оберните создание и использование ваших объектов соединения в блоки using
, этолегко сделать ...
using(SqlConnection conn = new SqlConnection(...))
{
///Open and use the connection
} //the 'using' causes it to automatically be closed.