Versuchen Sie Folgendes:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";
Stellen Sie außerdem sicher dass Ihre Verbindungszeichenfolge Sie standardmäßig auf den master
setzt Datenbank oder jede andere Datenbank außer der, die Sie löschen!
Abgesehen davon brauchen Sie wirklich nicht all das Zeug um Ihre Abfragen herum. Der ConnectionState beginnt immer mit Closed
, Sie müssen also nicht danach suchen. Ebenso packen Sie Ihre Verbindung in ein using
block beseitigt die Notwendigkeit, die Verbindung explizit zu schließen oder zu löschen. Alles, was Sie wirklich tun müssen, ist:
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;