Вероятно, в блок try
, который вы не обрабатываете, генерируется исключение. См. Это примечание в MSDN для try-finally :
В рамках обработанного исключения гарантированный запуск завершенного блока. Однако, если исключение не обрабатывается, выполнение блока finally зависит от того, как запускается операция исключения.
blockquote>В любом случае я рекомендовал бы обертывать соединение в блоке
using
:using (SqlConnection connection = new SqlConnection(connectionString)) { //etc... }
В качестве альтернативы добавьте блок catch к
try-finally
:conn.Open(); try { } catch { } finally { conn.Close(); }