Prueba esto:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
También asegúrate que su cadena de conexión le asigna de forma predeterminada el master
base de datos, o cualquier otra base de datos que no sea la que estás soltando!
Aparte, realmente no necesitas todo eso en torno a tus consultas. ConnectionState siempre comenzará Closed
, por lo que no necesita verificar eso. Del mismo modo, envolviendo su conexión en un using
block elimina la necesidad de cerrar o desechar explícitamente la conexión. Todo lo que realmente necesita hacer es:
String Connectionstring = CCMMUtility.CreateConnectionString(false, txt_DbDataSource.Text, "master", "sa", "happytimes", 1000);
using(SqlConnection con = new SqlConnection(Connectionstring)) {
con.Open();
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
SqlCommand sqlCommand = new SqlCommand(sqlCommandText, con);
sqlCommand.ExecuteNonQuery();
}
result = 1;