Prova detta:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
Se också till att se till att din anslutningssträng förinställer dig till master
databas, eller någon annan databas än den du släpper!
Dessutom behöver du verkligen inte allt det där kring dina frågor. ConnectionState startar alltid Closed
, så du behöver inte kontrollera det. På samma sätt kan du slå in din anslutning i en using
blockering eliminerar behovet av att uttryckligen stänga eller ta bort anslutningen. Allt du egentligen behöver göra är:
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;