J'essaie de supprimer une base de données de aspnet (C#). Mais ça me donne une erreur: il y a des connexions. Si je supprime toutes les connexions:Baisse de la base de données Postgresql
SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity
WHERE pg_stat_activity.pid <> pg_backend_pid() and pg_stat_activity.datname = 'databsename';
Il me donne une autre erreur: connexion est lose. C'est comme si j'exécutais la phrase ci-dessus, Il ferme toutes mes connexions.
J'utilise npgsql comme connecteur.
Voici mon code: Le code dans un bouton:
NpgsqlConnection _connPgComienzo = new NpgsqlConnection("my_connection_to_other_DDBB_in_the_same_server;");
try
{
_connPgComienzo.Open();
FileInfo file1 = new FileInfo(Server.MapPath("desconectar.sql"));
string script_crear_bbdd = file1.OpenText().ReadToEnd();
var m_createdb_cmd1 = new NpgsqlCommand(script_crear_bbdd, _connPgComienzo);
m_createdb_cmd1.ExecuteNonQuery();
_connPgComienzo.Close();
_connPgComienzo.Open();
FileInfo file2 = new FileInfo(Server.MapPath("drop_bbdd.sql"));
string script_crear_bbdd2 = file2.OpenText().ReadToEnd();
var m_createdb_cmd2 = new NpgsqlCommand(script_crear_bbdd2, _connPgComienzo);
m_createdb_cmd2.ExecuteNonQuery();
_connPgComienzo.Close();
}
catch (Exception ex)
{
}
desconectar.slq:
SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity
WHERE pid <> pg_backend_pid() AND pg_stat_activity.datname = 'theDDBBIWantToDrop';
drop_bbdd.sql:
DROP DATABASE theDDBBIWantToDrop;
http://stackoverflow.com/questions/17449420/postgresql-unable-to-drop-database-because -of-some-auto-connections-to-db? rq = 1 – Endrju
Cela ne fonctionne pas pour moi. Et je ne veux pas empêcher la connexion, je veux laisser tomber la base de données soudainement. Je modifie pour dire que oui, il fonctionne dans un client postgresql (maestro), mais ne fonctionne pas en C# – Za7pi
Montrez-nous le code qui ne fonctionne pas. Modifiez votre question et collez-la. – Endrju