Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Soltando o banco de dados do SQL Server por meio de C #


Tente isto:
String sqlCommandText = @"
ALTER DATABASE " + DbName + @" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [" + DbName + "]";

Além disso, certifique-se que sua string de conexão padroniza você para o master banco de dados ou qualquer outro banco de dados diferente daquele que você está descartando!

Como um aparte, você realmente não precisa de todas essas coisas em torno de suas consultas. O ConnectionState sempre iniciará Closed , então você não precisa verificar isso. Da mesma forma, envolvendo sua conexão em um using block elimina a necessidade de fechar ou descartar explicitamente a conexão. Tudo o que você realmente precisa fazer é:
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;