Imbrication de datareader

Fermé
zekisss Messages postés 10 Date d'inscription jeudi 13 décembre 2012 Statut Membre Dernière intervention 22 février 2013 - 9 févr. 2013 à 17:55
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 - 21 févr. 2013 à 22:10
Bonjour,
comment puis-je imbriquer deux datareader de la sorte:
Dim reader1 As SqlDataReader = command.ExecuteReader()
Dim reader2 As SqlDataReader = command.ExecuteReader()

While reader1.Read()
While reader2.Read()

End While
End While


reader1.Close()
reader2.Close()

1 réponse

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
11 févr. 2013 à 19:34
Bonjour,


Est-ce que tu peux expliquer pourquoi tu veux faire ça ? j'arrive pas trop à voir là. Tu pourrais mettre un exemple de ce que retourne chaque dataReader ?
0
zekisss Messages postés 10 Date d'inscription jeudi 13 décembre 2012 Statut Membre Dernière intervention 22 février 2013
13 févr. 2013 à 13:41
Command.CommandText = "SELECT id_produit,sum(Qte_cmd) FROM Commande where date_cmd <= ' " & date_x &" ' group by id_produit"
Dim reader1 As SqlClient.SqlDataReader = command.ExecuteReader()
While reader1.Read()
Command.CommandText = "SELECT count(Qte_vendu) FROM vente where id_produit='" & reader1(0) & "'"
Dim reader2 As SqlClient.SqlDataReader = command.ExecuteScalar()
if reader2() then System.Console.WriteLine ( "Quantité disponible :" & reader1(1)-reader2(0)
reader2.close

End While
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
21 févr. 2013 à 22:10
Pour moi ça devrait marcher à partir du moment où tu crées bien deux sqlCommand distincts par contre tu dois faire deux choses en plus
avant While reader1.Read(), faut que tu fasses If reader1.HasRows() then
Et pour le reader deux, juste après Dim reader 2, faut faire
If reader2.HasRows() then
while reader2.Read()

end while
end if

Si ça marche pas, dis-moi l'erreur que tu as
0