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 :

Remplir une listebox [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut Remplir une listebox
    Bonjour,

    J'essaie d'adapter un script trouvé sur le net de remplissage d'une listebox. Le script fonctionne parfaitement, il affiche dans la listbox le nom et l'id de la ligne.
    Je ne trouve pas comment faire pour afficher que le nom, et que le remplissage des cjamps concernés se fasse toujours...

    Le code en déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub DBremplirListe(ByRef LST As ListBox) 'remarquez le ByRef
            Dim cmd = New SQLiteCommand("SELECT ID,Nom FROM MYDATA ORDER BY Nom", CON)
            Dim DR As SQLiteDataReader = cmd.ExecuteReader
            LST.Items.Clear()
            While (DR.Read())
                'DR(1) est le nom DR(0) est ID
                'LST.Items.Add(DR(1) & "-" & DR(0)) 'utilise le - pour la séparation.
                LST.Items.Add(DR(1))
            End While
            DR.Close()
        End Sub
    Jusqu'a la pas de soucis je sait comment faire, c'est apres...

    Le code de la listbox dans la form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            If ListBox1.SelectedIndex = -1 Then Exit Sub
            Dim z As String = ListBox1.SelectedItem
            Dim p As Integer = z.IndexOf("-") 'utilise le - pour la séparation.
            Dim i As String = CInt(z.Substring(p + 1))
            Dim TBL_mydata As m_MYDATA = DBgetMYDATA(i)
            txtNom.Text = TBL_mydata.Nom
            txtDivers1.Text = TBL_mydata.Divers1
            txtLogin.Text = TBL_mydata.Login
            txtDivers2.Text = TBL_mydata.Divers2
            txtPass.Text = TBL_mydata.Pass
            SelID = TBL_mydata.ID
    End Sub
    La je bloque ke n'arrive pas à supprimer le - sans tout faire planter ou alors sans pouvoir remplir les champs concerné sur le cilc.

    Merci pour vos infos/aide.

    Cordialement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Il vaut mieux avoir une approche différente plutôt que de découper des chaînes de caractères.
    Regardez du coté de DisplayMember et ValueMember.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    Bonjour,

    Merci pour l'info mais ça ne solution pas mon pb. dans les cas ont sélectionne une ligne et ça je sait faire.

    Ce que je cherche c'est comment remplir mes textbox avec les donnée de la bdd.

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub DBremplirListe(ByRef LST As ListBox) 'remarquez le ByRef
            Dim cmd = New SQLiteCommand("SELECT ID,Nom FROM MYDATA ORDER BY Nom", CON)
            Dim DR As SQLiteDataReader = cmd.ExecuteReader
            LST.Items.Clear()
            While (DR.Read())
                  'DR(1) est le nom DR(0) est ID
                  LST.Items.Add(DR(1))
            End While
            DR.Close()
    Je remplis la listbox


    C'est apres que je n'arrive pas à traiter le code pour remplir les textbox. Il me faut l'ID mais je n'arrive pas/ne sait pas la récupérer
    pour l'utiliser, comme dans l'exemple ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim TBL_mydata As m_MYDATA = DBgetMYDATA(ID à récupérée...)
            txtNom.Text = TBL_mydata.Nom
            txtDivers1.Text = TBL_mydata.Divers1
            txtLogin.Text = TBL_mydata.Login
            txtDivers2.Text = TBL_mydata.Divers2
            txtPass.Text = TBL_mydata.Pass
            SelID = TBL_mydata.ID
    Cordialement

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    une classe qui décrit ton id et nom
    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
    Class MyData
        Private _id As Integer
        Private _nom As String
        Public Sub New(ByVal ID As Integer, ByVal Nom As String)
            _nom = Nom
            _id = ID
        End Sub
        Public ReadOnly Property ID() As Integer
            Get
                Return _id
            End Get
        End Property
     
        Public ReadOnly Property Nom() As String
            Get
                Return _nom
            End Get
        End Property
    End Class
    une liste (Mydata) que tu rempli avec don DR (ici manuel pour l'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
        Dim data As List(Of MyData) = New List(Of MyData)
     
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    // remplir dans la boucle avec DR
            data.Add(New MyData(1, "Alabama"))
            data.Add(New MyData(2, "Washington"))
            data.Add(New MyData(3, "West Virginia"))
            data.Add(New MyData(4, "Wisconsin"))
            data.Add(New MyData(5, "Wyoming"))
     
            ListBox1.DataSource = data
            ListBox1.DisplayMember = "Nom"
            ListBox1.ValueMember = "ID"
        End Sub
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            If ListBox1.SelectedIndex <> -1 Then
                TextBox1.Text = ListBox1.SelectedValue.ToString()
                TextBox2.Text = ListBox1.Text
            End If
        End Sub
    End Class

    pour résumer, après avoir créé ta classe (j'ai pas très bien choisi le nom, à toi de voir) :
    - tu crées une instance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim data As List(Of MyData) = New List(Of MyData)
    - tu fais les liens avec ta listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            ListBox1.DataSource = data
            ListBox1.DisplayMember = "Nom"
            ListBox1.ValueMember = "ID"
    - tu remplis ta classe avec ton DR

    - récuprération du code "ID"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim TBL_mydata As m_MYDATA = DBgetMYDATA(ListBox1.SelectedValue.ToString())
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 329
    Points : 151
    Points
    151
    Par défaut
    Cool merci pour l'explication et le code !

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 15/01/2016, 08h52
  2. Remplir une listebox selon plusieurs critères de recherche
    Par kiki89 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/03/2014, 15h36
  3. Remplir une grosse BdD ??
    Par MagicManu dans le forum Outils
    Réponses: 2
    Dernier message: 15/06/2004, 15h01
  4. [Initialisation] Remplir une structure une fois
    Par Kimael dans le forum Langage
    Réponses: 14
    Dernier message: 08/06/2004, 15h33
  5. remplir une table avec UTL_FILE.GET_LINE
    Par delphim dans le forum SQL
    Réponses: 9
    Dernier message: 12/03/2004, 10h15

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