Prova questo:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
Inoltre assicurati che la tua stringa di connessione ti riporti al master
database o qualsiasi altro database diverso da quello che stai eliminando!
Per inciso, non hai davvero bisogno di tutte quelle cose attorno alle tue domande. ConnectionState inizierà sempre con Closed
, quindi non è necessario verificarlo. Allo stesso modo, avvolgere la connessione in un using
block elimina la necessità di chiudere o eliminare esplicitamente la connessione. Tutto quello che devi veramente fare è:
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;