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 :

Affichage de données dans différentes ListBox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 12
    Points
    12
    Par défaut Affichage de données dans différentes ListBox
    Bonjour !!

    J'ai créé une application C# et je suis bloqué sur plusieurs points..
    Je voudrais que l'application affiche différents profils avec leur nom, poste et compétences

    Seulement avec mon 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
    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
            private void TrouveUnFreelance_Load(object sender, EventArgs e)
            {
     
                //trackbarDistance.Value = int.Parse(labelDistance.Text);
     
                MySqlConnection uneConnexion;
                MySqlCommand uneRequete;
                MySqlCommand uneRequete1;
                MySqlCommand uneRequete2;
     
                string connectionString = "Database=trouveunfreelance;Data Source=localhost;User Id=root;Password=";
                uneConnexion = new MySqlConnection(connectionString);
                try
                {
                    uneConnexion.Open();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Connexion impossible ! ");
                }
     
                uneRequete = new MySqlCommand("SELECT prenom, nom FROM freelance");
                uneRequete.Connection = uneConnexion;
                MySqlDataReader MonReader = uneRequete.ExecuteReader();
     
                while (MonReader.Read())
                {
                    listBoxNom.Items.Add(MonReader.GetString(0) + " " + MonReader.GetString(1));
                    listBoxNom1.Items.Add(MonReader.GetString(0) + " " + MonReader.GetString(1));
                    listBoxNom2.Items.Add(MonReader.GetString(0) + " " + MonReader.GetString(1));
                    listBoxNom3.Items.Add(MonReader.GetString(0) + " " + MonReader.GetString(1));
                }
     
                uneConnexion = new MySqlConnection(connectionString);
                uneRequete1 = new MySqlCommand("SELECT poste FROM freelance");
                uneRequete1.Connection = uneConnexion;
                MySqlDataReader MonReader1 = uneRequete1.ExecuteReader();
     
                while (MonReader1.Read())
                {
                    listBoxPoste.Items.Add(MonReader1.GetString(0));
                }
     
                uneConnexion = new MySqlConnection(connectionString);
                uneRequete2 = new MySqlCommand("SELECT poste FROM freelance");
                uneRequete2.Connection = uneConnexion;
                MySqlDataReader MonReader2 = uneRequete1.ExecuteReader();
     
                while (MonReader2.Read())
                {
                    listBoxCompetences.Items.Add(MonReader2.GetString(0));
                    listBoxCompetences1.Items.Add(MonReader2.GetString(0));
                    listBoxCompetences2.Items.Add(MonReader2.GetString(0));
                    listBoxCompetences3.Items.Add(MonReader2.GetString(0));
     
                }
     
            }
    j'obtiens :


    il faut cliquer sur la flèche du bas pour faire défiler les noms et du coup les postes ne changent pas avec l'Id de la personne ( Id_Freelance) .

    De plus, le poste et les compétences ne s'affichent pas,

    Avez-vous des solutions ?

    Merci et bonne journée !
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Il y a pas mal de problèmes dans ce code.
    La même requête est exécuté 3 fois (?) Deux requêtes sont rigoureusement identiques et ramènent uniquement le poste (?). Tu crées une Requete2 mais tu utilises uneRequete1 (?). Tu utilises 4 listbox pour y mettre les mêmes informations (?)

    il faut cliquer sur la flèche du bas pour faire défiler les noms et du coup les postes ne changent pas avec l'Id de la personne ( Id_Freelance) .
    Nulle part dans le code je ne vois de référence sur un Id. De plus, comment en faisant défiler les noms où est-il écrit que le poste doit changer ?

    Ce que je ferais à ta place :
    Création d'une classe Profil (avec Id, nom, prénom, poste etc.). Création d'une List<Profil> que tu renseignes à l'aide d'une requête (en supposant que tu n'auras pas des millions d'enregistrements ).
    Tu travailles à partir de cette liste pour renseigner ton écran. Je ne suis pas sûr que les Listbox soient les mieux adaptées au vue de ton écran, je ne comprends pas trop l'intéret...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Bonjour et merci de votre réponse bastien !

    Citation Envoyé par ebastien Voir le message
    Création d'une classe Profil (avec Id, nom, prénom, poste etc.). Création d'une List<Profil> que tu renseignes à l'aide d'une requête (en supposant que tu n'auras pas des millions d'enregistrements ).
    Tu travailles à partir de cette liste pour renseigner ton écran. Je ne suis pas sûr que les Listbox soient les mieux adaptées au vue de ton écran, je ne comprends pas trop l'intéret...
    En fait ma classe profil c'est la classe Freelance qui détient : Id_Freelance, Nom, Prenom, Poste, Compétences, ...
    Du coup en créant une liste je pourrais afficher comme je souhaite faire (4 zones différentes) ?

    En fait je travaille avec une listBox puisque c'est la seule manière que j'ai découvert pour afficher des données, je ne trouve pas d'autre moyen, merci du conseil !!

  4. #4
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    C'est typiquement le genre de problème que tu peux résoudre avec un UserControl: tu crées un template qui tu pourras mettre dans ta forme principale.

    Exemple très moche (pas le temps de copier le look-and-feel de ta capture...):

    Nom : Capture.PNG
Affichages : 160
Taille : 6,3 Ko

    Et dans le constructeur, tu passes tes paramètres, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            public UserControl1(string nom, string poste, string[] competences)
            {
                InitializeComponent();
                lbNom.Text = nom;
                lbPoste.Text = poste;
                lbComp1.Text = competences[0];
                lbComp2.Text = competences[1];
            }
    Tu fais une requête qui ne retourne que 4 résultats (SELECT TOP 4 etc...), et tu popules tes usercontrols à partir des résultats de la requête.
    Et le tour est joué.
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par nouanda Voir le message
    C'est typiquement le genre de problème que tu peux résoudre avec un UserControl: tu crées un template qui tu pourras mettre dans ta forme principale.

    Tu fais une requête qui ne retourne que 4 résultats (SELECT TOP 4 etc...), et tu popules tes usercontrols à partir des résultats de la requête.
    Et le tour est joué.
    Super merci beaucoup nouanda !!!!!
    J'essaye ça le plus tôt possible

Discussions similaires

  1. [XL-2010] Affichage de donnée dans txtbox sur click listbox
    Par dedam dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/01/2016, 09h54
  2. [XL-2003] affichage de donnée dans une listbox ou textbox d'un userform
    Par revemane dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2009, 20h13
  3. Affichage de donnée dans une page
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 21/02/2006, 17h54
  4. Inscrire des donnée dans différentes listes
    Par gio4ever dans le forum Access
    Réponses: 11
    Dernier message: 26/01/2006, 21h54
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

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