IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Boucles while imbriquées


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Boucles while imbriquées
    Bonjour
    Je souhaite lire deux boucle while issues de deux requêtes différentes, a la lecture de la premiére valeur, il parcours l'ensemble des valeurs de la 2eme boucle et ainsi de suite.
    Le problème est qu'il me lit juste la première valeur !
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    While (lire_Liste_PN.Read())
     
              aData = New Dictionary(Of String, String)
              aData.Add("PartNumber", lire_Liste_PN("PartNumber").ToString())
              Var_Liste_PN = aData.Item("PartNumber")
              'LogStartStop("Partnumber liste des PN : " & Var_Liste_PN)
     
              'Boucle sur les table DieProducts, DieDefinition et Production + La condition : NB_DAY_PRODUCTION
              While (lire_Liste_Date.Read())
     
                aData = New Dictionary(Of String, String)
                aData.Add("PartNumber", lire_Liste_Date("PartNumber").ToString())
                Var_Liste_Date = aData.Item("PartNumber")
                'LogStartStop("Partnumber liste des dates : " & Var_Liste_Date)
     
                If Var_Liste_Date = Var_Liste_PN Then
                  'LogStartStop("PN Liste : " & Var_Liste_PN & " PN liste Date : " & Var_Liste_Date)
                Else
                  'LogStartStop("Pas de correspondance")
                End If
     
              End While

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 128
    Points : 109
    Points
    109
    Par défaut
    regarde si moi je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Valeur as Boolean = True
    While (Valeur)
    Msgbox("Bonjour")
    End While
    là on est d'accord que l'app va te spammer de Bonjour, jusqu'à ce que 'Valeur' devient 'False'

    et regarde là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Valeur as Boolean = True
    While (Valeur)
    Msgbox("Bonjour")
         While (Valeur)
         Valeur = False
         End While
    End While
    eh bah là quecequ'il va se passer ?

    sa va s’exécuter, il va te dire te dire bonjour, puis sa va aller à l'autre loop et sa va bloquer dans celle là, si la desieme loop transforme 'Valeur' en 'False', la 2eme loop s'arretera donc car 'valeur' n'est plus 'True' et la premiere loop aussi car elle aussi check la meme condition, donc sa va te dire bonjour une fois puis s'arreter, si vous n'avez pas compris apres ça
    ...

  3. #3
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut merci
    merci
    pour ton explication par contre la question est la boucle qui se bloque sur le premier parcours, et la je donne une autre approche, l’exécution de la requête sql est faite une fois et le read vas lire l'ensemble des données, un fois fini la première lecture et le traitement de la première valeur bah il vide le cache et plus aucune données ?
    la bonne pratique est de mettre le résultat de la requête dans un dictionnaire et faire la boucle sur les éléments du dico.
    je m'y attelle de bonne heur.

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il manque pas mal d'info pour bien comprendre ton code, et y'a pas mal de soucis qui ressortent quand même :
    - quand et où sont initialisés tes DataReader ?
    - il te lit la première valeur de quelle boucle ?
    - est-ce normal que tu ne réexécutes pas ta deuxième requête à chaque itération ?
    - est-ce normal que tu écrases ta variable oData dans ta seconde boucle ? Et à chacune de ses itérations ?
    - dans les Dictionnary les clés doivent être uniques, là tu n'as pas d'exception levée car tu initialises n'importe comment, mais ça va te sauter au nez une fois cette partie corrigée.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    Octobre 2012
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 309
    Points : 65
    Points
    65
    Par défaut Yes
    Merci Messieurs j'ai résolu le problème. bonne journée a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle while imbriqué, problème de renvoi de valeur
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 17h09
  2. Boucle while imbriquées
    Par quentincabo dans le forum VB.NET
    Réponses: 14
    Dernier message: 04/04/2008, 11h29
  3. problème d'execution de 2 boucles while imbriquées
    Par missyos dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/03/2008, 14h01
  4. [MySQL] Boucle while imbriqué
    Par agbononamour dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 31/05/2007, 18h09
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo