DataReader déjà ouvert

Signaler
Messages postés
5
Date d'inscription
dimanche 11 avril 2010
Statut
Membre
Dernière intervention
9 mai 2011
-
assoudona
Messages postés
9
Date d'inscription
mercredi 17 avril 2002
Statut
Membre
Dernière intervention
5 mai 2011
-
Bonjour,
j'ai un combobox dans lequel je selectionne un id_commande, aprés je clique sur un linklabel pour afficher les details de cette commande(dans un autre form). je veux que l'id, la date et le client qui a passé cette commande, je veux que ces infos s'affichent dans des label, et les reference ,la quantité commandé ainsi que la quantité sortie je les affiche dans un datagridview.
voici mon code :
Dim dr1 As SqlDataReader

Dim tab As New DataTable
If tab.Rows.Count <> 0 Then
DataGridView1.Rows.Clear()
End If

Dim cm1 As New SqlCommand("select commande.id_commande, commande.date, commande.nom from avoir,commande where avoir.id_commande=commande.id_commande and commande.id_commande=" & Form1.ComboBox6.SelectedItem, c)
dr1 = cm1.ExecuteReader
While dr1.Read
Label5.Text = dr1.GetValue(0)
Label2.Text = dr1.GetValue(1)
Label4.Text = dr1.GetValue(2)

End While

dr1.Close()

Dim cm2 As New SqlCommand("select avoir.reference as 'Références commandées',avoir.quantité_commandée as 'Quantité commande',avoir.qté_sortie as 'Quantité Sortie' from avoir,commande where avoir.id_commande=commande.id_commande and commande.id_commande=" & Form1.ComboBox6.SelectedItem, c)

dr1 = cm2.ExecuteReader
tab.Load(dr1)
DataGridView1.DataSource = tab
dr1.Close()

.
quand je clique sur le linklabel, un msg d'erreur s'affiche ; un dataReader associer à cette commande est deja ouvert :s comment puis je le resoudre sachant que je doit travailler en mode connecté .
Merci d'avance pour votre aide

2 réponses

Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
Bonjour,
Peux tu me dire où cette erreur s'affiche?

Je suppose que c'est à la premiere requete...

Pour eviter ce message, il faut que tu créé une nouvelle connection et que tu bosses avec cette nouvelle connection...

Je pense que ton erreur viens du fait qu'un datareader est ouvert sur la connection "c" dans l'autre fiche...
Messages postés
9
Date d'inscription
mercredi 17 avril 2002
Statut
Membre
Dernière intervention
5 mai 2011

Bonjour,
J'epere que tu as trouvé satisfaction. Sinon, déplace ta commande dr1.close() dans la boucle while...End while et exécute

Bonne chance