Fermer une connexion odbc [Résolu]

Signaler
Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005
-
Messages postés
14
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
23 avril 2008
-
Salut tout le monde...

J'utilise un odbcConnection ainsi que :

- un odbcCommand pour une première requete
- un odbcDataAdapter afin d'alimenter un datagrid avec une deuxième requete

Or, lorsque j'arrive à la fin de mon code et que je ferme ma connexion (en passant par odbcCommand.connection.close), et que je debug, j'obtiens une erreur qui me demande de fermer d'abord mon adapter...

Et pas moyen de trouver une fonction pour fermer l'adapter (enfin, j'ai trouvé dispose, mais ça ne marche pas...).

vu mon anglais, je vous mets le message exact : There is already an open DataReader associated with this Connection which must be closed first.

merci d'avance.
A voir également:

8 réponses

Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005

J'ai trouvé!!! lol...

En fait, je reprend depuis le début, et je donne la soluce, au cas ou... :p

J'ai bien ouvert ma connexion de façon explicite. J'utilise mon datareader pour récupérer mes résultats.

Sauf que je n'avais pas pensé a fermé a le reader avant la connexion... donc môssieur visual studio rale... lol.

Ayant le même problème sur plusieurs page (résolu bien sur), je ne peux que conseiller a ceux qui auraient ce soucis de fermer le reader le plus tot possible, il semble que l'ordre d'ouverture/fermeture soit assez strict (surtout si on cumule plusieurs reader/command dans la même page).

Voilà,

merci quand même pour toutes vos idées.
Messages postés
92
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
7 août 2006

Bonjour,
est ce que vous pouvez mettre un bout de code.


Merci
Solution
Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005

je crois que j'ai en partie compris...

Developpant en c#, il me faut passer par la syntaxe des destructeurs...

euh.... c'est quoi ces machins? please help... :p
Messages postés
115
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
2 août 2005

pour le bout de code....

ma fois euh...


odbcDataAdaAcceuil.SelectCommand.CommandText=requeteAdapterCom;


odbcDataAdaAcceuil.Fill(dataSetAcceuil);


OdbcComAcceuil.Connection.Close();

l'erreur tombe a cet endroit, parce que mon adapter n'est pas fermé au moment du close...
Messages postés
92
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
7 août 2006

voici un bout de code que j'utilise et ca marche bien:


#region Connect to Data Base


OdbcConnection objOdbcConnection =
new OdbcConnection();



try


{


objOdbcConnection = MySQL_Requettes.MyODBCOpenconnect("base","localhost","","root");




}



catch


{




}


#endregion



string strSql =" select * from Product p, Category c where c.CategoryName='"+supprod+"' and p.subcategory='"+supprod1+"'and c.CategoryID=p.CategoryID ";


OdbcDataAdapter objOdbcCommand =
new OdbcDataAdapter(strSql,objOdbcConnection);


objOdbcConnection.Close();


DataSetp.Clear();


objOdbcCommand.Fill(DataSetp,"tab");

je ne sais pas si ca vous aide.

Merci pour votre aide
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Apres l'appel de la méthode Fill d'un OdbcDataAdapter, la connexion se clos toute seule, sauf si tu as explicitement appelé la méthode Connect de ta connexion, ce qui n'a pas l'air d'etre le cas.



Donc tu n'as pas a te soucier de cela

Mx
Messages postés
92
Date d'inscription
lundi 4 avril 2005
Statut
Membre
Dernière intervention
7 août 2006

ok !!


! Solution
Messages postés
14
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
23 avril 2008

Mettre la ligne qui permet de fermer le DataReader ca aurait ete bien

Merci