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 :

Probleme de liste deroulante


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Probleme de liste deroulante
    Bonjour,

    Depuis plusieurs jours je suis confronté à un problème bien embêtant ! Je développe actuellement un petit logiciel pour une entreprise en stage et j’ai un sérieux souci avec les listes déroulantes en VB !
    En effet, lorsque j’essaye d’insérer des données dans ma BDD via une liste déroulante, tout fonctionne sauf la dernière ligne ! Impossible de voir ou est le problème…
    J’ai fait plusieurs Screenshot pour que vous compreniez mieux.

    Voici tout d’abord la liste déroulante, lorsque je choisis "Almacen" ou "Compras", il n’y a aucun problème, par contre j’ai un message d’erreur lorsque je choisis "Informatica" !



    Le programme s'arrête et affiche cette erreur:


    Comme vous pouvez le voir, un message d’erreur m’indique qu’il n’y a pas de ligne 17 pourtant dans ma base de données j’ai bien 17 lignes (d’ailleurs « informatica » correspond à la 18eme ligne…)


    Je ne sais donc pas comment résoudre ce problème et une aide de votre part me serait précieuse.
    Merci d’avance

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Bonsoir,

    Peux tu nous donner le code que tu utilise pour faire l'insertion ? Parce que dans tes imprime écrans, Le code n'apparait pas correctement.

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Hello,
    quand je compte les éléments de la liste, j'en compte 17, donc l'index maximum est de 16... Il manque dans la liste l'élément n°15 qui ferait, s'il existait, 18 éléments...

    P.S. : Moi ce que j'aimerais voir c'est le code de remplissage du comboBox...
    Utilise les balises CODE représentée par la # dans l'éditeur, c'est plus lisible

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Salut,

    C'est vrai que je n'avais même pas remarqué que la ligne 15 manquait à l'appel.
    Et donc l'index maxi est 16 au lieu de 17. Il serait intéressant d'avoir le code où apparait l'erreur.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos reponses ! Je n'avais pas internet hier soir je ne pouvais donc pas vous repondre.

    Alors voici le code por la requête et l'insertion dans la combo box:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          'LA REQUETE POUR LES SERVICES
     
            req3 = "Select NoService, NomService from Service ;"
     
            CmdServ = New OleDbDataAdapter(req3, Cnx)
            CmdServ.Fill(JddServ)
            ' et remplissage de la liste déroulante
            Me.LstService.Items.Add("Todos los servicios")
            For Each UnServ In JddServ.Rows
                Me.LstService.Items.Add(UnServ.Item("NomService"))
     
            Next UnServ
            Me.LstService.SelectedIndex = 0
    Voici par contre l'insertion dans la BDD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           If ContrôleDonnées() = True Then
                If ActionEnCours = "ajout" Then
                    ' préparation d'une requête Insert :
                    req = "Insert into Salaries (NomSalaries, PrénomSalaries, Email, "
                    req &= "Telephone, NoService)"
                    req &= " values ('" & RemplacePrenom(TxtNom.Text) & "', '" & RemplacePrenom(TxtPrenom.Text) & "', '" & TxtEmail.Text
                    req &= "', '" & TxtTelephone.Text & "', " & NoService & " )"
    et dans la fonction controle données, je donne une valeur à NoService(C'est la ou ça plante)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoService = Me.JddServ.Rows((Me.LstService.SelectedIndex)).Item("NoService")
    Ps: En effet, l'element nº15 est manquant car j'offre la possibilité à l'utilisateur de supprimer un ou plusieurs services s'il le souhaite. Donc si l'utilisateur supprime un service, tout se decale au niveau des Rows...

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Salut,

    que souhaite tu faire avec cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoService = Me.JddServ.Rows((Me.LstService.SelectedIndex)).Item("NoService")
    C'est pour juste comprendre le code.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Je souhaite récuperer le numero de la ligne de la liste déroulante.
    Je pensais que le numero de cette ligne correspondant au "Numero Service" présent dans ma table mais dès que je supprime une donnée dans ma table tout se décale.

    Exemple, ma liste déroulante contient 15 lignes. Je pensais que la 15eme ligne de la liste deroulante correspondrait à la 15 eme ligne de ma table ACCESS.

    J'ai besoin de memoriser le "numero Service" pour pouvoir ensuite l'inserer dans ma table via un insert into.

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    J'ai l'impression que tu mélanges un index dans la liste Item, qui commence à 0 et n'as jamais de trou, avec un champ integer sur ta table de donnée, qui commence à 1 et qui à des trous.

    Risque pas de fonctionner sur le long terme des trucs du style...

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    moi ce que je comprends c'est que sont JddServ et LstService, le mieux étant de préfixer les controles par leur type genre DGV et CMB

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Oui c'est dont je me suis rendu compte, il faut donc que je trouve un autre moyen pour recuperer le "NumeroService" de ma liste deroulante.

    Edit: Probleme Resolu, après avoir fait des recherches de mon coté.

    La solution: il faut donc soustraire de 1 pour obtenir la ligne désiré et donc le numeroservice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoService = Me.JddServ.Rows(Me.LstService.SelectedIndex - 1).Item("NoService")
    Il y a beau avoir plusieurs "trous" dans ma table (j'ai testé), "NumeroService" prend bien en compte la valeur que je souhaite lui assigner.

    Merci pour votre aide qui m'a permis de voir ou était le problème !

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    sur le combobox au lieu de mettre des string on peut mettre des classes (donc par exemple une avec l'id as integer et le nom as string)
    ensuite tu peux dire au combobox d'afficher le nom (displaymember) et lire l'id (valuemember)
    comme ca selectedvalue te retournera l'id alors que selecteditem te retournera l'instance de la classe avec les 2 propriétés

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    J'ai editer mon message précedent après que tu ais posté. L'idée des classes est une bonne idée aussi mais comme enoncé precedemment le code que je viens de modifié marche. Je n'ai plus d'erreur "IndexOutOfRange". J'ai supprimé plusieurs champs dans ma base et l'insert se passe bien

    Merci tout de même !

  13. #13
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    N'oublie pas de bien géré le cas du "Todos los servicios" qui est à l'index 0 dans la comboBox...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2010
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Ouep, les utilisateurs auront le droit à un message d'erreur

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

Discussions similaires

  1. probleme avec liste deroulante
    Par mans27 dans le forum JSF
    Réponses: 1
    Dernier message: 02/06/2007, 13h25
  2. [MySQL] Probleme avec liste deroulante et requete
    Par castelligreg dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/12/2006, 15h39
  3. [AJAX] Liste déroulante pour afficher les informations en ajax div ?
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/11/2006, 10h06
  4. problème quantité liste déroulante,
    Par kitty2006 dans le forum Langage
    Réponses: 6
    Dernier message: 03/10/2006, 11h29
  5. Probleme 3 liste deroulante [AJAX]
    Par AlphonseBrown dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/04/2006, 21h15

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