SqlConnection.Close(); - и коннект ушел в спул примерно на минуту, т.е. подключение к базе еще существует и детач невозможен.
Попробуй перед закрытием выполнить инструкцию USE master, тогда коннект при закрытии будет висеть минуту на базе master и не мешать делать детач нужной базы.
А можно еще и спулигн выключить - подробности в MSDN на предмет ключей строки соединения (для ADO.NET только)
_________
Свет в конце тоннеля временно потушен по техническим причинам.