sql >> Base de Datos >  >> RDS >> Sqlserver

Soltar la base de datos de SQL Server a través de C#

Prueba esto:

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

También asegúrate que su cadena de conexión le asigna de forma predeterminada el master base de datos, o cualquier otra base de datos que no sea la que estás soltando!

Aparte, realmente no necesitas todo eso en torno a tus consultas. ConnectionState siempre comenzará Closed , por lo que no necesita verificar eso. Del mismo modo, envolviendo su conexión en un using block elimina la necesidad de cerrar o desechar explícitamente la conexión. Todo lo que realmente necesita hacer es:

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;