Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Eliminazione del database di SQL Server tramite C#

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;