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 :

[vb.net] datagridview+exécution de requete MYsql


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 90
    Par défaut [vb.net] datagridview+exécution de requete MYsql
    j 3 table(produit,commande,commandedet) et j voudrais affiche les commande d'un produit dont la référence sera sectionner via un combobox.
    mon problème c'est que a l'exécution j n'arrive a lire que la première commande de mon tableau commande( première ligne) et elle s'affiche sur mon datagrid pour les autres produit rien ne se produit

    donc voila mon code:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
                strQuery = "SELECT * FROM llx_product  where ref='" & ComboBox1.Text & "'"
                strQuery1 = "SELECT * FROM  llx_commandedet"
                strQuery2 = "SELECT * FROM llx_commande"
                myCommand.Connection = conn
                myCommand1.Connection = conn1
                myCommand2.Connection = conn2
     
                myCommand.CommandText = strQuery
                myCommand1.CommandText = strQuery1
                myCommand2.CommandText = strQuery2
     
                dr = myCommand.ExecuteReader()
                dr1 = myCommand1.ExecuteReader()
                dr2 = myCommand2.ExecuteReader()
     
                DataGridView1.Rows.Clear()
                DataGridView1.ColumnCount = 6
                DataGridView1.Columns(0).Name = "référence"
                DataGridView1.Columns(1).Name = "date de commande"
                DataGridView1.Columns(2).Name = "réf client"
                DataGridView1.Columns(3).Name = "total_ht"
                DataGridView1.Columns(4).Name = "total_ttc"
                DataGridView1.Columns(5).Name = "date de livraison"
     
     
     
                While dr.Read()
     
                    While dr1.Read()
                        While dr2.Read()
     
                            If (dr1(2) = dr(0) And dr2(0) = dr1(1)) Then
     
                                DataGridView1.Rows.Add(dr2(4), dr2(9), dr2(5), dr2(20), dr2(21), dr2(28))
     
                            End If
                        End While
    End While
     
                End While
    et merci

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Pourquoi ne pas stocké le résultat de tes requêtes dans des datatables et lié tes datagridview a tes datatable ?

    Les Datagridview ne sont pas très pratique pour manipuler les données. Et tu y verras beaucoup plus claire.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 90
    Par défaut
    oui c vrai mais pour l'instant tous ce que je veux c'est de faire quelque chose de fonctionnel puisque j n manipule pas très bien le vb vu que c'est mon premier gros projet mais sinon ou se trouve l'erreur

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Je crois que tu te trompes beaucoup (algo, logique, requete)

    Il n'y a aucun lien entre tes trois requêtes... Alors que tes tables ont apparemment des liens (puisque dr2(0)=dr1(0))

    Enfin... tu essais de faire un lien avec des dr0(0)=dr1(1).

    Au lieu de faire UNE bonne requête avec jointure et condition... Tu fais trois requête indépendante.... et la tu essais de faire tes jointures...

    Mais je t'assure que tes trois While imbriqués te retournera tout sauf ce que tu souhaites.

    puisque tu ne veux que les informations: dr2(4), dr2(9), dr2(5), dr2(20), dr2(21), dr2(28) -> Donc dr2...

    Essaie de créer une seule requête qui te retournera exactement ce que tu veux.

    Apres... si tu ne veux pas faire de SQL ni de VB... très peu pour moi.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 90
    Par défaut
    j bien essayé avec une seule requête mais sans succès alors que ca marche avec cette méthode (j fait le même travail pour la récupération de la fiche produit ) mais ici ca bloque il n'arrive a lire que la première ligne de mon tableau donc il me retourne le résultat d'un seul produit.

    sinon j'aimerais bien manipuler toute les fonctionnalité du vb mais la je suis limité par le temps et en plus j aucune idée sur les datatable et comment les manipuler


    mais merci tous de même pour la réponse

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    A ta place je me méfierai de cette méthode... Puisque tu dis toi même qu'elle marche mais qu'elle marche pas dans la même phrase.

    Le choix est simple, on passe 10 minutes sur ta requêtes, ou 10 heures sur ton code, sans être sur que ça marche.


    Si tu arrives a faire une seule requête.

    Après ton code ressemblera a ça:

    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
    strQuery = "MaSuperRequete  where ref='" & ComboBox1.Text & "'"
                myCommand.Connection = conn
     
                myCommand.CommandText = strQuery
     
                dr = myCommand.ExecuteReader()
     
                DataGridView1.Rows.Clear()
                DataGridView1.ColumnCount = 6
                DataGridView1.Columns(0).Name = "référence"
                DataGridView1.Columns(1).Name = "date de commande"
                DataGridView1.Columns(2).Name = "réf client"
                DataGridView1.Columns(3).Name = "total_ht"
                DataGridView1.Columns(4).Name = "total_ttc"
                DataGridView1.Columns(5).Name = "date de livraison"
     
     
                 While dr.Read()
     
                       DataGridView1.Rows.Add(dr(0), dr(1), dr(2), dr(3), dr(4), dr(5))
     
                End While

    Je veux bien t'aider... mais pour l'instant ton code n'est pas compréhensible car on ne connais pas tes tables, tes colonnes tes liens.... Donne des indications sur ta requête, on va la faire, et la vie sera tellement plus simple !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/07/2014, 17h05
  2. exécuter une requete sur mysql
    Par benkunz dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/04/2007, 08h18
  3. VB.Net Exécution des requetes paramettrées en mode connecté
    Par TIBE Patrick Walter dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/05/2006, 10h21
  4. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  5. arret requete mysql
    Par titiyo dans le forum Bases de données
    Réponses: 5
    Dernier message: 15/10/2004, 17h40

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