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 :

Boucle while imbriquées


Sujet :

VB.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut Boucle while imbriquées
    Bonjour,

    Quelqu'un pourrait-il me dire pourquoi ma boucle en rouge ne tourne une fois et pas le nombre de fois que ma boucle en verte tourne
    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
    23
    24
    25
    26
    27
    28
     While (dr.Read())
                    MsgBox(n)
                    Dim min = (dr.Item("DENSMIN"))
                    Dim max = (dr.Item("DENSMAX"))
                    Dim moy = (dr.Item("DENSMOY"))
                    Dim Actif As Boolean
                    'converir les valeurs afin qu ils soient comphreensible par les check box
                    If (dr.Item("ACTIF") = "Y") Then
                        Actif = True
                    Else
                        Actif = False
                    End If
                    While (dr1.Read)
                        MsgBox("ok")
                        If (dr.Item("CODPRO") = dr1.Item("CODPRO")) Then
                            emulation = "ME"
                            'MsgBox("ok")
                        Else
                            emulation = ""
                        End If
                    End While
                    Dim rown As String() = {dr.Item("CODPRO"), min, max, moy, Actif, emulation}
                    With Distinct.DatagridDensity.Rows
                        .Add(rown)
                    End With
                    n = n + 1
                End While

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    Quels sont les contenus de DR et DR1 ??

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            Dim n As Integer = 1
            Dim emulation As String = ""
            '-----------------------------------------------
            cmd.CommandText = requete
            cmd.AddRowid = True
            cmd.CommandType = CommandType.Text
            Dim dr As OracleDataReader = cmd.ExecuteReader()
            '-----------------------------------------------
            cmd1.CommandText = requete1
            cmd1.AddRowid = True
            cmd1.CommandType = CommandType.Text
            Dim dr1 As OracleDataReader = cmd1.ExecuteReader()

    merci de ton aide

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    les requêtes sont les suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "requete = select  * FROM PROCESSTRG.DENSITY"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "requete1 = select  * FROM PROCESSTRG.AJUST_EM_NAOH_VOLMAX"
    L'ouverture d'oracles 9 est réalisée mais je ne l'ajoute sauf demande de votre part. Les requêtes sont bonnes et les champs utilisé sont bon eux aussi.

    C'est pourquoi moi je ne comprends pas

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Peut-être parce requete<>requete1 ...?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    Pourquoi?? je ne comprends ce que tu veux dire par là

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    si la requete (DR) ne renvoie pas le même nombre d'enregistrements que la requete1 (DR1), il est normal que leur boucle n'est pas non plus le même nombre de passage

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    et tes requêtes retournent bien plusieurs résultats ?? Je sais que ma question est un peu débile, mais on sais jamais...

    Sinon, il ne faut pas remettre le dr au debut une fois que t'a fini de le lire ?? du genre dr.close()

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    Avant tout merci de vos réponses:

    Biboune : ma requete possède 23 résultats différents et ma requete1 possède 5 resultats différents

    J'ai quand même rajouté close mais cela ne change rien

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    le but de mes boucles est de tester pour chaque élément de requete(dr) si un élément de requete1(dr1) est identique.

    Mais cela le réalise parfaitement pour la premiere valeur de requete(dr) mais pour les 22 autres valeurs la boucle imbriquées ne se remet pas en route.
    Et je ne sais pas pourquoi

  11. #11
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    met un dr.close a la sortie du second while, et test..

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    ah ok, dès la 2ème passe dans la boucle DR, le DR1 a déjà été lu jusqu'au bout
    donc où il faut le relancer, ou travailler avec un dataset

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    OK merci, je crois que ce que tu dis est bon mais comment on relance une boucle ou on utilise un dataset.

    merci d'avance

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Connais-tu la classe ADO ? Sinon comme ça :
    http://www.developpez.net/forums/sho...hlight=dataset

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Points : 219
    Points
    219
    Par défaut
    Merci pour ton aide et pour le lien. maintenant, je vais chercher un peu par moi-même car je ne voudrai pas abusé.

    Mais merci pour tout

    J'ai oublie de te répondre oui je connais la classe ADO mais je ne suis loin d'être pro dans ce domaine

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

Discussions similaires

  1. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  2. 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
  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