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

mkolivier
Messages postés
11
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 octobre 2013
- 20 sept. 2006 à 16:53
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

4 réponses

cs_azra
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2007
1
20 sept. 2006 à 18:05
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
0
crilun
Messages postés
114
Date d'inscription
lundi 10 mai 2004
Statut
Membre
Dernière intervention
17 octobre 2006

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

21 sept. 2006 à 09:46
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
0
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,

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
0