Erreur Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord ê

Messages postés
11
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2013
- - Dernière réponse : poufouille
Messages postés
5
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 novembre 2007
- 22 nov. 2007 à 09:39
Bonjour,

en voulant mettre 2 objets SqlDataReader, 2 Connection, etc.

Mon but est de lister une table dans une boucle while (sqldatareader.read()) et faire une seconde requete pour lister les champs associés, à un item de la 1ere requete

mais j'obtiens cette erreur :

Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé

Comment faire ? svp

Merci d'avance

Olivier
Afficher la suite 

4 réponses

Messages postés
426
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007
0
Merci
Bonjour,

Dans ta deuxieme boucle, il faut que tu ouvres le datareader avant et le ferme apres (pour le faire revenir au debut)

while (Datareader1.read())
{
nouveau data reader;
analyse;
ferme le nouveau data reader;
}

Bon courage!

<hr />Azra(Florent) - MVS- MCSD.NET
Commenter la réponse de cs_azra
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006
0
Merci
crilun
out ut peut aussi passser par le dataset il est en mode non connecté d'ou pas ce genre de pb.
Commenter la réponse de crilun
Messages postés
11
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2013
0
Merci
Bonjour

J'ai trouvé en fait j'utilise une seconde connexion à la base de données, cela me semble bizarre mais bon ca marche, je dois dupliquer chaque objet en fait, 1 ensebmel par requete, du moins lorsque je travaille sur de jeu d'enregistrement en même temps, car mon but est d'afficher sur une page une liste de catégories, et ses sous-catégories associées (id)

Merci de vos réponses

Olivier
Commenter la réponse de mkolivier
Messages postés
5
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 novembre 2007
0
Merci
 
Bonjour,

Il est tout à fait possible d'avoir plusieurs DataReader sur une même connexion grace à l'activation de "MARS" en incluant dans la chaine de connexion l'option : MultipleActiveResultSets=True. Par contre, cette option n'est valide que pour SQL Server 2005 ...

Activation de MARS : http://msdn2.microsoft.com/fr-fr/library/h32h3abf(VS.80).aspx
Exemple d'utilisation : http://msdn2.microsoft.com/fr-fr/library/yf1a7f4f(VS.80).aspx






Poufouille
Commenter la réponse de poufouille