Spróbuj tego:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
Również upewnij się że parametry połączenia ustawiają domyślnie master
baza danych lub jakakolwiek inna baza danych niż ta, którą upuszczasz!
Na marginesie, naprawdę nie potrzebujesz tego wszystkiego wokół swoich zapytań. ConnectionState zawsze rozpocznie się od Closed
, więc nie musisz tego sprawdzać. Podobnie, zawijanie połączenia w using
blok eliminuje potrzebę jawnego zamykania lub usuwania połączenia. Wszystko, co naprawdę musisz zrobić, to:
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;