Partage
  • Partager sur Facebook
  • Partager sur Twitter

Doublons combobox

Sujet résolu
    7 avril 2011 à 14:36:10

    Bonjour a tous !

    Voila j'ai un problème dans l'une de mes comboBox. Celle-ci contient plusieurs fois la même valeurs ( des dates pour être plus précis).Je voulais donc savoir s'il existe un moyen pour supprimer les valeurs qui sont identiques. Merci d'avance!
    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2011 à 10:18:24

      Bonjour,

      est-ce que tu récupères ces dates depuis une base de données ?

      Si oui, au lieu de faire un
      select maDate ...
      
      utilise un
      select DISTINCT maDate...
      
      ta requête ne te renverras aucun doublons :)

      Sinon, lorsque tu créés ta ComboBox, il faut vérifier que la date n'est pas déjà dedans, si elle n'y est pas, tu peux l'ajouter sinon non.
      • Partager sur Facebook
      • Partager sur Twitter
      Si ma réponse vous a aidé, n'hésitez pas à mettre un "+1" | N'oubliez pas de marquez le sujet en "Résolu"
        8 avril 2011 à 10:27:39

        Bonjour,

        Oui je récupère mes dates depuis une base de données (Sqlite). Le problème c'est que mes dates sont sous la forme "26-11-2009 09:31:00" mais seul la date m'intéresse, j'ai donc parser pour obtenir "26-11-2009". Donc je pense qu'il faut que je teste avant l'affiche mais je vois pas trop comment.
        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2011 à 10:35:55


          Essaye
          Select Distinct date(tonChampDate) From ...
          

          source SQLite
          • Partager sur Facebook
          • Partager sur Twitter
          Si ma réponse vous a aidé, n'hésitez pas à mettre un "+1" | N'oubliez pas de marquez le sujet en "Résolu"
            8 avril 2011 à 11:05:13

            J'ai essaye cela ne donne rien. Dans ma table, j'ai une colonne qui contient plusieurs relevés enregistrés sous la forme "26-11-2009 09:31:00","26-11-2009 11:53:00". A c'est relevés correspondent une valeur. Le problème est que je dois pouvoir afficher les valeurs en fonction du jour (3 jours sont disponibles,26,27 et 28). J'ai donc créer une comboxBox pour afficher les jour disponibles afin que l'utilisateur selectionne. Or l'affiche de ma comboxBox est dans une boucle qui affiche tant qu'il y'a une valeur a lire dans la table. Pour afficher uniquement la date ,j'ai parser pour obtenir 26-11-2009. Voici mon code

            for (int y = 0; y < Data2.Tables[0].Rows.Count; y++)
                            {
                                char[] Caractaire_Separateur = new Char[] {' '};
                                string [] heuredate= (Data2.Tables[0].Rows[y]["Heure_date"]).ToString().Split(Caractaire_Separateur);
                                comboBox2.Items.Add(heuredate[0].ToString()); 
                            }
            


            Mon problème est que ma comboxBox contient plusieurs fois la même date. Voila en gros soucis...désolé pour le pavé :) .
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2011 à 11:10:19

              Tu peux assez facilement vérifier ça ;)
              Il te suffit de n'ajouter ta date que si elle n'est pas déjà dans ta collection :

              for (int y = 0; y < Data2.Tables[0].Rows.Count; y++)
                              {
                                  char[] Caractaire_Separateur = new Char[] {' '};
                                  string [] heuredate= (Data2.Tables[0].Rows[y]["Heure_date"]).ToString().Split(Caractaire_Separateur);
                                  if (!comboBox2.Items.Contains(heuredate[0].ToString())) comboBox2.Items.Add(heuredate[0].ToString()); //n'ajoute la date que si elle n'est pas contenue dans la collection
                              }
              


              Je n'ai pas testé il peut y avoir une erreur mais ça devrait passer.
              • Partager sur Facebook
              • Partager sur Twitter
                8 avril 2011 à 11:14:00

                Hey !

                Merci ça fonctionne parfaitement! Merci pour votre aide ! A bientôt sur le forum ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  8 avril 2011 à 11:19:17

                  De rien, pense au "Résolu" :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Si ma réponse vous a aidé, n'hésitez pas à mettre un "+1" | N'oubliez pas de marquez le sujet en "Résolu"
                    8 avril 2011 à 14:05:28

                    Tant qu'à faire, tu peux nettoyer un peu le code:

                    foreach(DataRow row in Data2.Tables[0].Rows)
                    {
                        string heure = row["Heure_date"].ToString().Split(' ')[0];
                        if (!comboBox2.Items.Contains(heure)) 
                            comboBox2.Items.Add(heure); //n'ajoute la date que si elle n'est pas contenue dans la collection
                    }
                    

                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 avril 2011 à 14:24:11

                      Merci Orwell c'est fait ;)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Doublons combobox

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown