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

Windows Forms Discussion :

[vb.net] recuperer une valeur dans un text combo box


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut [vb.net] recuperer une valeur dans un text combo box
    Bonjour,

    Je voudrais récupérer un parametre se trouvant dans un texte de combobox se situant avant le premier espace. Voila comment se presente mon texte :

    exmple "10 nom_d'une personne prenom" --> "id nom prenom"

    Je voudrais juste récupérer l' ID se trouvant devant le premier espace, et je n'arrive pas à le faire faute d'avoir essayé plusieurs façons non concluantes.

    Merci de votre aide

    PS : le texte combobox s'appelle ainsi me.combo_participant.text

  2. #2
    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
    Bonjour.

    Il suffit juste de faire un Split de la chaîne.
    Mais c'est plus beau de binder le combo, et de mettre l'ID en ValueMember et le reste en DisplayMember.

  3. #3
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 777
    Points
    1 777
    Par défaut
    Bonjour.

    C'est parce que tu n'utilises pas la bonne propriété du combo je pense.
    Pour avoir le texte que tu vois dans le combo :
    monCombo.SelectedText
    Pour avoir la valeur du combo :
    monCombo.SelectedValue

    Par contre, tu peux "masquer" l'ID en procédant comme ceci :

    Tu peux charger ton combo avec l'ID et le nom/prénom par exemple.
    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
     
    Private dtPersonne As New DataTable
     
    '
    ' Ici c'est juste pour charger le combo mais si tu viens d'une BDD
    ' ca sera un dataset comme source du combo avec comme requete 
    ' d'alimentation un truc du style "select monID, monNom & " " & monPrenom From ... "
    '
    With dtPersonne
         .Columns.Add("ID")
         .Columns.Add("NomPrenom")
         .Rows.Add("10", "Paul Rene")
         .Rows.Add("11", "Raoul Larsoul")
    ...
    End With
     
    With MonComBo
         .ValueMember = dtPersonne.Columns(0).ColumnName
         .DisplayMember = dtPersonne.Columns(1).ColumnName
         .DataSource = dtPersonne 
         ' Pas de saisie possible --> la valeur doit etre dans la liste
         .DropDownStyle = ComboBoxStyle.DropDownList
    End With
    Pour récupérer l'ID tu utilises : MonComBo.SelectedValue

    Cdt.

  4. #4
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    désolé mais j'ai rien compris

    pour le moment je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim idpar as string
    idpar = me.combo_particip.text.substring(me.combo_particip.text.length - 1 ))
     
    'requete
    "select id_particip from participant where id_particip = '"+idpar+"'
     
    etc etc

    Par contre pour le moment, j'affiche "nom prenom ID"
    Le truc c'est que le substring ne recupere qu'un seul caractere entier, alors si je passe à un entier avec plusieurs chiffres, je ne recupererais que l'entier de bout de chaine, c'est à dire si l'ID est 123 je recupere que 3 et ça c'est pas le tip top

    C'est pourquoi je voudrais changer comme dans l'idee de mon premier post, passer l'ID en debut de chaine et faire un substring avant le premier espace, et ça je ne sais aps faire

  5. #5
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    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
    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
    Public Sub rempli_particip()
     
            Dim cmd As New System.Data.Odbc.OdbcCommand
            Dim sql As String
            sql = "select nom,prenom,id_particip from participant ORDER BY nom ASC"
            cmd.CommandText = sql
            cmd.Connection = cn
     
            Dim dr As System.Data.Odbc.OdbcDataReader
            dr = cmd.ExecuteReader()
            Me.Combo_particip.Items.Clear()
            While dr.Read()
                Me.Combo_particip.Items.Add(dr.GetString(0) + " " + dr.GetString(1) + " " + dr.GetInt32(2).ToString)
            End While
            dr.Close()
        End Sub
     
        Private Sub aj_particip_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            Me.titre_film.Text = Me.fp.TextBox1.Text
            Me.rempli_fonction()
            Me.rempli_particip()
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            Dim idpar As String
            idpar = Me.Combo_particip.Text.Substring((Me.Combo_particip.Text.Length - 1))
     
            Dim cmd2 As New System.Data.Odbc.OdbcCommand
            Dim sql2 As String
            sql2 = "select id_particip from participant where id_particip='" + idpar + "'"
            cmd2.CommandText = sql2
            cmd2.Connection = cn2
     
            Dim dr2 As System.Data.Odbc.OdbcDataReader
            dr2 = cmd2.ExecuteReader()
            dr2.Read()
     
     
            dr2.Close()
            Me.Close()
     
        End Sub
    End Class
    j'ai allégé mon code en gardant que le nécessaire

  6. #6
    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 on reste sur l'idée de tout afficher dans le combo, il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Split(idpar, " ")(indice de la position de ton ID 0 ou 2)

  7. #7
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    justement balbanet, je ne puex pas connaitre l'indice de position de mon ID, ce serait trop simple surtout que la chaine de caracteres n'est pas toujours la meme !

  8. #8
    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
    c'est l'indice de position de la sous-chaine générée par le split

  9. #9
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    oui je comprends ce que ça fait mais, imaginons 2 cas :

    "1 yoyo toto"
    "135 alalalala doudou"

    pour le premie cas split(0,1)
    pour le second cas split(0,4)

    Il faut donc que je recupere la position du caractere " " ( espace ), et ça je ne sais pas faire sous VB 2005
    D'où mon probleme !

  10. #10
    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
    Je ne te suis pas bien là

    Split ("1 toto tutu", " ") renvoit une collection de 3 chaînes :
    chaîne(0) = "1"
    chaîne(1) = "toto"
    chaîne(2) = "tutu"
    donc
    Split ("781 tata titi", " ")
    chaîne(0) = "781"
    chaîne(1) = "tata"
    chaîne(2) = "titi"

  11. #11
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    ah ! oh ! j'avais pas compris ça comme ça

    mais chaine, faut il que je le passe en variable ou bien c'est auto ?

  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
    Soit tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Split("1 toto tutu", " ")(0)
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim chaîne as string() = Split("1 toto tutu", " ")
    puis tu accèdes par chaîne(0)

  13. #13
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    impec ça fonctionne !!

    Merci beaucoup.
    Je pensais pas qu'il existait un truc si simpliste.
    Comme je suis assez débutant la dedans, il aurait fallu me montrer directement comment ça marche

    En tout cas je te remercie beaucoup
    a+ bye

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

Discussions similaires

  1. [VB.NET] rafraichir une valeur dans une textbox
    Par grand_prophete dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/04/2006, 12h40
  2. [MySQL] recuperer une valeur dans un listview
    Par genebaud dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/10/2005, 22h43
  3. [vb.net] retourner une valeur dans l'evenement click
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/05/2005, 13h06
  4. [ Struts ] recuperer une valeur dans une url?
    Par njac dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2004, 14h24

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