Tente isto:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
Além disso, certifique-se que sua string de conexão padroniza você para o
master
banco de dados ou qualquer outro banco de dados diferente daquele que você está descartando! Como um aparte, você realmente não precisa de todas essas coisas em torno de suas consultas. O ConnectionState sempre iniciará
Closed
, então você não precisa verificar isso. Da mesma forma, envolvendo sua conexão em um using
block elimina a necessidade de fechar ou descartar explicitamente a conexão. Tudo o que você realmente precisa fazer é: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;