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 :

Problème Base de données => Listbox


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Problème Base de données => Listbox
    Bonjour, je suis en train de programmer un programme utilisant une base de données access, j'aimerais mettre dans une listbox les objets que je lis dans une table de ma base.
    donc voici le 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
    Users user = new Users(); //Objet correspondant a ma table
                Bd Bd = new Bd(); // Classe s'occupant des connexions
                Bd.Open(@"C:\Documents and Settings\Ardel\Bureau\C# - Application juin\Applic\bin\Debug\C#.mdb");
                Requete = "SELECT * FROM COMPTE";
                OleDbCommand Cmde = new OleDbCommand(Requete, Bd.Connection);
                OleDbDataReader dr;
                dr = Cmde.ExecuteReader();
                while (dr.Read())
                {
                    user.Name = dr[0].ToString();
                    user.Password = dr[1].ToString();
                    user.Right = dr[2].ToString();
                    MessageBox.Show(" Username: " + user.Name + "  Password: " + user.Password + "  Status: " + user.Right);
                    listBoxUsers.Items.Add(user);
                }
    Le problème est qu'au moment de l'ajout mon messageBox.show me montre bien les différents objets de ma table. Mais après dans ma liste j'ai mes différents nom d'objet (j'ai surchargé la méthode ToString pour qu'il n'affiche que leurs noms), mais lorsque je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void listBoxUsers_SelectedIndexChanged(object sender, EventArgs e)
            {
                Users user = new Users();
                user = (Users)listBoxUsers.SelectedItem;
                labelInformation.Text = listBoxUsers.SelectedIndex.ToString();
                if (user != null)
                {
                    labelDetail.Text = " Username: " + user.Name + "  Password: " + user.Password + "  Status: " + user.Right;
                }
            }
    Il m'affiche tous le temps le même objet, mais pourtant l'index change en fonctions de celui sur lequel je clique... ?

    Je ne sais pas si la description du problème est suffisamment clair.
    Merci à ceux qui liront

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Généralement pour faire ce que tu essaye de faire je trouve beaucoup plus simple de passer par une datatable et un DataGridView

    Et sincérement je n'ai jamais essayé d'afficher une listbox multicolonne
    Si c'est possible ce qui est certain c'est que ta classe User doit avoir un accesseur pour chacun des éléments que tu veux afficher

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Mais ce n'est pas une listbox multicolonne, elle contient juste un objet qui contient les informations que je désire... (un peu a la Cpp: j'encapsule^^)

    Ah oui elle en a en plus des get/set (première fois que j'entends le terme accesseur lol) Je vais essayer avec ça.

    Edit: Mais il les utilise par défaut non, ceux créer par le refactor? Fin mon problème ne vient pas de là de toute façon je pense, mais merci pour ta réponse.

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tu passe des objets Users a ton Listbox, comment veux tu qu'il sache ce qu'il doit afficher et comment ?

    C'est Pacques !
    Pas le pere Noel !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Ben je remets l'objet sélectionner dans un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void listBoxUsers_SelectedIndexChanged(object sender, EventArgs e)
    {
    Users user = new Users();
    user = (Users)listBoxUsers.SelectedItem;
    Donc après je peux afficher l'objet. J'affiche l'objet dans un label pas dans mon listbox

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Et que veux tu afficher dans ton listbox alors ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Ben ma listbox contient des objets "compte utilisateurs" j'affiche dans ma listbox la liste de tous les comptes qui existent dans ma base. ça ça fonctionne. Et ensuite quand l'utilisateur sélectionne un compte dans la liste je veux afficher toutes les informations concernant le compte dans un label. (mot de passe , droit ect)
    Le problème est qu'il affiche les informations du dernier champ de la base pour tous les objets malgré qu'au moment de l'ajout il m'affiche les infos des différents compte : en gros ou le selecteditem me retourne toujours le même objet ou y a un problème au remplissage de ma liste...

  8. #8
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tu ne fait pas un New User dans to while de remplissage

    Forcément, tu ajoute toujours le meme

  9. #9
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Pour etre plus clair
    Chaque .Add ajoute une reference au MEME objet
    Resultat ta listbox referencie n fois le meme objet qui contiendra les dernieres valeurs que tu lui a donné

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Merci beaucoup!
    Génial! Et merci pour l'explication aussi.

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

Discussions similaires

  1. problème base de donnée access
    Par Phiss dans le forum ASP
    Réponses: 6
    Dernier message: 21/11/2007, 22h15
  2. Problème base de données Microsoft Jet
    Par lilo415 dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2007, 00h23
  3. Problème Base de donnée
    Par quedudev dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/09/2007, 13h44
  4. Base de données et ListBox
    Par scorpion37 dans le forum C++Builder
    Réponses: 17
    Dernier message: 21/06/2006, 11h23
  5. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 12h59

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