begin process at 2008 08 28 09:35:32
1 232 958 membres
76 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : SqlConnection, SqlDataAdapter, DataSet, comment tout libérer ? [ Archives / Base de données ] (smoitry)

SqlConnection, SqlDataAdapter, DataSet, comment tout libérer ? le 20/03/2006 17:44:50

smoitry
Bonjour,

J'appelle au secours !

Dans mon soft, j'utilise un SqlConnection pour me connecter à la base de données. Un SqlDataAdapter que je crée à chaque fois que j'ai besoin de remplir une table dans un DataSet.

Je fais bien mon Dispose() du DataAdapter après utilisation. Je fais bien cn.Close() et cn.Dispose() sur le SqlConnection pour me déconnecter de la base de données. Je fais également un ds.Dispose() sur le DataSet pour bien libérer ce qui touche à la base de données. J'affecte toutes ces variables à null, et je fais un System.GC.Collect();

Résultat : d'après SQL Server, la base est toujours utilisée. Preuve : je veux restaurer un backup de la base en l'écrasant et il refuse. Dès lors que je ferme totalement mon appli, la base est libérée et je peux restaurer mon backup.

Question : que faut-il faire pour libérer cette base complètement sans quitter mon appli ? Qu'est-ce que j'ai oublié ???

Merci pour votre aide !

Stéphane

Re : SqlConnection, SqlDataAdapter, DataSet, comment tout libérer ? le 20/03/2006 18:57:08

Lutinore
(Admin CS)
Réponse acceptée !
Salut, je pense que ça vient du pool de connexion.



Regardes si ça peut t'aider :

http://www.csharpfr.com/infomsg/TESTER-CONNEXION-BASE-DONNEES-0_678012.aspx

Re : SqlConnection, SqlDataAdapter, DataSet, comment tout libérer ? le 21/03/2006 10:20:38

smoitry
Merci !

C'est exactement le résultat que j'attendais : en ajoutant Pooling=false à la chaine de connexion SQL Server, il libère bien la base quand il faut. Ceci dit, c'est dommage de devoir le faire systématiquement.

Mon problème est le suivant : j'ai un soft qui utilise une base de données pour certaines de ses fonctions. J'aimerais avoir les avantages en performances du pooling, mais lorsque je sors de la partie qui utilise la base, que la connexion ne soit plus active afin de permettre des travaux de maintenance sur la base sans devoir sortir complètement de mon appli.

Le principe du SqlConnection.ClearPool( .. ) énoncé en .NET 2.0 semble répondre à cette attente, mais je ne travaille pas en .NET 2.0 ... Pas d'équivalent en .NET 1.1 ?

En tous cas merci de ton aide et si toi ou quelqu'un a la réponse à cette dernière question je suis preneur !

Stéphane.


Classé sous : base, dataset, libérer, sqldataadapter, sqlconnection

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS