Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen der SQL Server-Datenbank über C#

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;