none
vérifier l'existance du contenu d'un textBox dans le résultat d'une requete Linq RRS feed

  • Discussion générale

  • Bonjour à tous,

    J'aimerais vérifier l'existance du contenu d'un textBox dans le résultat d'une requête Linq et décider de l'action à mener (si la valeur entrée dans le texbox est présente dans le résultat de la requête linq, afficher un message avec l'option ressayez ou quitter, si la valeur n'est pas présente, sauvegarder un enrégistrement dans une table autre table).

    Voici un exemple de code qui décrit mon besoin, mais ne correspond pas, car le foreach n'est pas indiqué.

      myDataContext dc = new myDataContext();
          var lt = from l in dc.myTable
               select new { l.Name };
          var result = lt.ToList();
          foreach (var idem in result)
          {
    
            if (TextBox1.Text == idem.Name.ToString())
            {
              MessageBox.Show("Le Nom : " + this.TextBox1.Text + " est déjà présent dans la base", "Nom déjà enrégistré",
                MessageBoxButtons.RetryCancel, MessageBoxIcon.Question);
            }
    
            else
            {
              MessageBox.Show("Vos données sont bien sauvegardées", "Confirmation");
            }
          }
    

    Le Souci est que Foreach balai l'ensemble des données de result et vérifie chacune d'elle, une à une, alors que mon souhait est de vérifier l'existence de l'élément dans l'ensemble des données de result (qui est en réalité une colonne d'une table).

    Merci pour vos conseils.


    Petit à petit l'oiseau construit son nid
    jeudi 7 avril 2011 15:59

Toutes les réponses

  • Bonjour,

    Tu pourrais faire de la façon suivante :

    //Any() te permet de savoir si au moins un élément est contenu dns ta requête
          if (result.Where(cha => cha.Equals(TextBox1.Text)).Any())
          {
            MessageBox.Show("Le Nom : " + TextBox1.Text + " est déjà présent dans la base", "Nom déjà enrégistré",
          MessageBoxButtons.RetryCancel, MessageBoxIcon.Question);
    
          }
          else
          {
            MessageBox.Show("Vos données sont bien sauvegardées", "Confirmation");
    
          }
    
    Voila je sais pas si cela te convient, et n'hésite pas a poser des questions.

    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    jeudi 7 avril 2011 17:36
  • Bonjour Pascal,

    Géniale ta solution, j'avais pas encore utilisé l'opérateur any().

    Vraiment géniale et une fois de plus merci.

     


     

    Petit à petit l'oiseau construit son nid

    lundi 11 avril 2011 15:11