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 :

Problème de ListView


Sujet :

VB.NET

  1. #1
    Membre habitué
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut Problème de ListView
    Bonjour amis développeurs !

    Si je viens vous embêter un peu en cette magnifique journée (ça change !) c'est parce que j'ai un petit soucis avec le chargement d'une ListView en VB.NET

    Avant de rentrer dans le détail du code, j'explique le contexte

    - Je souhaite l'ajout d'un évènement(repas) sur une fiche client
    - Il existe 3 types de repas : Petit déjeuner, déjeuner, dîner
    - Il existe des tarifs différents selon les tranches d'âges :
    • 2/3 ans : 6.40 euros
    • 4/10 ans : 9.70 euros
    • 11/14 ans : 12.90 euros
    • Adulte : 16.10 euros



    - Lorsqu'on ajoute un évènement, une méthode est appelée pour charger la ListView et permettre un rappel des différents évènements liés à la fiche clients.

    Et c'est là qu'intervient mon soucis, lorsque j'ajoute un évènement il ne m'affiche pas les bonnes données. Je m'explique.
    La première insertion dans la BDD marche et l'affichage aussi, mais lorsque j'ajoute un 2nd évènement à la fiche, l'insertion dans la BDD marche, mais l'évènement affiché reste le même que le 1er


    Hors, dans la BDD, le second insert a marché


    Et voici mon code, si quelqu'un pouvait pointer du doigt l'erreur ou les erreurs que j'ai commis, je lui en serais très reconnaissant

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Private Sub ChargementLV()
       ' Initialisation des variables
       coutRepas23 = 6.4
       coutRepas410 = 9.7
       coutRepas1114 = 12.9
       coutRepasAdulte = 16.1
       sousTot = 0
       nbrRepas = 0
       strPDJ = "Petit déjeuner"
       strDJ = "Déjeuner"
       strDN = "Dîner"
     
       ' Déclaration du DataReader + Requête SELECT
            Dim drChargementLV As SqlServerCe.SqlCeDataReader '                 0                       1                       2                        3                      4                        5                          6                          7                           8                        9                                   10                                  11                                  12                                  13                          14                              15                      16                                                                                                   
            drChargementLV = BarowSoft.BddManager.SelectSQL("SELECT Fiche.nom_client_fiche, Fiche.numero_logement_fiche, Fiche.solde_clos_fiche, Fiche.id_utilisateur, Fiche.date_fiche, Fiche.montant_solde_fiche, Lier.evenement_payer_lier, Evenement.libelle_evenement, Evenement.cout_evenement, Evenement.nombre_2_3_ans_evenement, Evenement.nombre_4_10_ans_evenement, Evenement.nombre_11_14_ans_evenement, Evenement.nombre_adulte_evenement, Evenement.nombre_evenement, Evenement.nom_client_evenement, Evenement.date_evenement, Evenement.date_repas_evenement FROM Fiche INNER JOIN Lier ON Fiche.id_fiche = Lier.id_fiche INNER JOIN Evenement ON Lier.id_evenement = Evenement.id_evenement WHERE (Fiche.numero_logement_fiche = " & nudNumLogementCreerFiche.Value & " AND Evenement.nom_client_evenement = '" & tbNomCreerFiche.Text & "')")
            lvEvtCreerFiche.Items.Clear()
     
       ' Insertion des objets dans la ListView
         Do While drChargementLV.Read ' Tant qu'il y'a des résultats dans le SELECT
             Dim objLVI As New ListViewItem  ' On déclare l'Evenement.
             ' On lui passe les valeurs
             objLVI.Text = drChargementLV.GetValue(15) ' DATE événement
             ' On regarde maintenant Si
             If drChargementLV.GetValue(7) = strPDJ Then ' C'est un événement PDJ
                 ' GESTION des ENFANTS/ADULTES
                 If drChargementLV.GetValue(9) <> 0 Or drChargementLV.GetValue(10) <> 0 Or drChargementLV.GetValue(11) <> 0 Or drChargementLV.GetValue(12) <> 0 Then ' Si il y'a des clients
                     objLVI.SubItems.Add("Petit déjeuner") ' Nom de l'évenement
                     nbrRepas = drChargementLV.GetValue(9) + drChargementLV.GetValue(10) + drChargementLV.GetValue(11) + drChargementLV.GetValue(12) ' 2/3 ans + 4/10 ans + 11/14 + Adultes = nombre de PDJ
                     objLVI.SubItems.Add(nbrRepas)
                     objLVI.SubItems.Add("X")
                     sousTot = (drChargementLV.GetValue(9) * coutRepas23) + (drChargementLV.GetValue(10) * coutRepas410) + (drChargementLV.GetValue(11) * coutRepas1114) + (drChargementLV.GetValue(12) * coutRepasAdulte)
                     objLVI.SubItems.Add(sousTot)
                     objLVI.SubItems.Add(drChargementLV.GetValue(6))
                 End If
             ElseIf drChargementLV.GetValue(7) = strDJ Then ' C'est un événement DJ
                 If drChargementLV.GetValue(9) <> 0 Or drChargementLV.GetValue(10) <> 0 Or drChargementLV.GetValue(11) <> 0 Or drChargementLV.GetValue(12) <> 0 Then ' Si nombre 2/3 ans est != 0 ALORS
                     objLVI.SubItems.Add("Dejeuner") ' Nom de l'évenement
                     nbrRepas = drChargementLV.GetValue(9) + drChargementLV.GetValue(10) + drChargementLV.GetValue(11) + drChargementLV.GetValue(12) ' 2/3 ans + 4/10 ans + 11/14 + Adultes = nombre de DJ
                     objLVI.SubItems.Add(nbrRepas)
                     objLVI.SubItems.Add("X")
                     sousTot = (drChargementLV.GetValue(9) * coutRepas23) + (drChargementLV.GetValue(10) * coutRepas410) + (drChargementLV.GetValue(11) * coutRepas1114) + (drChargementLV.GetValue(12) * coutRepasAdulte)
                     objLVI.SubItems.Add(sousTot)
                     objLVI.SubItems.Add(drChargementLV.GetValue(6))
                 End If
             ElseIf drChargementLV.GetValue(7) = strDN Then ' C'est un événement DN
                 If drChargementLV.GetValue(9) <> 0 Or drChargementLV.GetValue(10) <> 0 Or drChargementLV.GetValue(11) <> 0 Or drChargementLV.GetValue(12) <> 0 Then ' Si nombre 2/3 ans est != 0 ALORS
                     objLVI.SubItems.Add("Dîner") ' Nom de l'évenement
                     nbrRepas = drChargementLV.GetValue(9) + drChargementLV.GetValue(10) + drChargementLV.GetValue(11) + drChargementLV.GetValue(12) ' 2/3 ans + 4/10 ans + 11/14 + Adultes = nombre de PDJ
                     objLVI.SubItems.Add(nbrRepas)
                     objLVI.SubItems.Add("X")
                     sousTot = (drChargementLV.GetValue(9) * coutRepas23) + (drChargementLV.GetValue(10) * coutRepas410) + (drChargementLV.GetValue(11) * coutRepas1114) + (drChargementLV.GetValue(12) * coutRepasAdulte)
                     objLVI.SubItems.Add(sousTot)
                     objLVI.SubItems.Add(drChargementLV.GetValue(6))
                 End If
             Else ' C'est un événement réception
                 objLVI.SubItems.Add(drChargementLV.GetValue(7))     ' On récupère le libellé de l'événement
                 objLVI.SubItems.Add(drChargementLV.GetValue(13))     ' "     "     le nombre
                 If IsDBNull(drChargementLV.GetValue(8)) Then        ' On vérifie que l'événement est de type prêt ou payant
                     objLVI.SubItems.Add("Prêt")
                     objLVI.SubItems.Add("Prêt")
                     objLVI.SubItems.Add("Prêt")
                 Else
                     objLVI.SubItems.Add(drChargementLV.GetValue(8)) ' On récupère le Prix unitaire
                     sousTot = drChargementLV.GetValue(13) * drChargementLV.GetValue(8) ' On calcul le Sous total : "Nombre * Prix Unitaire = sousTot"
                     objLVI.SubItems.Add(sousTot)
                     objLVI.SubItems.Add(drChargementLV.GetValue(6)) ' On affiche si ça a été payé ou non
                 End If
             End If
             ' Puis on l'ajoute à la ListeView
             lvEvtCreerFiche.Items.Add(objLVI)
             objLVI = Nothing
         Loop
         drChargementLV = Nothing
        End Sub
    Merci de m'aider

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            drChargementLV = BarowSoft.BddManager.SelectSQL("SELECT Fiche.nom_client_fiche, Fiche.numero_logement_fiche, Fiche.solde_clos_fiche, Fiche.id_utilisateur, Fiche.date_fiche, Fiche.montant_solde_fiche, Lier.evenement_payer_lier, Evenement.libelle_evenement, Evenement.cout_evenement, Evenement.nombre_2_3_ans_evenement, Evenement.nombre_4_10_ans_evenement, Evenement.nombre_11_14_ans_evenement, Evenement.nombre_adulte_evenement, Evenement.nombre_evenement, Evenement.nom_client_evenement, Evenement.date_evenement, Evenement.date_repas_evenement FROM Fiche INNER JOIN Lier ON Fiche.id_fiche = Lier.id_fiche INNER JOIN Evenement ON Lier.id_evenement = Evenement.id_evenement WHERE (Fiche.numero_logement_fiche = " & nudNumLogementCreerFiche.Value & " AND Evenement.nom_client_evenement = '" & tbNomCreerFiche.Text & "')")
    Ca c'est de la requête lol !!!

  3. #3
    Membre confirmé
    Homme Profil pro
    Informaticien
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Service public

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Bonjour KAILLINGER,

    Heu.. je me trompe peut-être mais je ne vois nul part d'incrémentation dans ta boucle Do While. Un peu comme si tu restais sur drChargementLV (0). Ce qui expliquerait que tu affiches toujours le premier.

  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
    nan, la boucle est sur le .Read, donc tant qu'il peut lire une nouvelle ligne il continue.

    Mais petit conseil pour résoudre ton problème... mets un point d'arret. Puis progresse en pas a pas... tu verras par ou il passe...

  5. #5
    Membre habitué
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut
    Le problème est réglé

    J'ai utilisé un LEFT OUTER JOIN au niveau de ma requête SQL
    La condition de jointure éliminait des résultats

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

Discussions similaires

  1. Problème avec ListView et multiselect
    Par dadooo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/06/2007, 16h45
  2. [C#]Problème de listview
    Par Fredo02 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/06/2007, 16h00
  3. Problème avec listview
    Par Svenna dans le forum Général VBA
    Réponses: 9
    Dernier message: 27/01/2007, 17h55
  4. Problème affichage ListView
    Par sorcer1 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/01/2007, 15h52
  5. [C#] Problème avec ListView
    Par yannick dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/06/2004, 18h29

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