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

Signaler
Messages postés
11
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2013
-
poufouille
Messages postés
5
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 novembre 2007
-
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

4 réponses

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

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
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006

crilun
out ut peut aussi passser par le dataset il est en mode non connecté d'ou pas ce genre de pb.
Messages postés
11
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2013

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
Messages postés
5
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
21 novembre 2007

 
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