Requête LINQ
Résolu
sympatiqueCCM
Messages postés
408
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'essaie de faire une requête LINQ et d'afficher les résultats dans une ListBox.
J'ai essayé de me guider sur des exemples mais ça ne fonctionne pas.
J'aurais besoin d'un coup de main.
Ca m'aiderais a mieux comprendre
Voici le code
Merci beaucoup de votre aide.
J'essaie de faire une requête LINQ et d'afficher les résultats dans une ListBox.
J'ai essayé de me guider sur des exemples mais ça ne fonctionne pas.
J'aurais besoin d'un coup de main.
Ca m'aiderais a mieux comprendre
Voici le code
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // déclarer une liste de personnes List<Personne> personnes = new List<Personne>(); personnes.Add(new Personne(1, "Raymond", "Fournier")); personnes.Add(new Personne(2, "Louise", "Bellefeuille")); personnes.Add(new Personne(3, "Mireille", "Fournier")); personnes.Add(new Personne(4, "Louise", "Bernard")); personnes.Add(new Personne(5, "Raymond", "Lamontagne")); // declarer une liste d'adresse List<Adresse> adresses = new List<Adresse>(); adresses.Add(new Adresse(1, 132, "Ch. Ducharme", "Val-des-bois")); adresses.Add(new Adresse(2, 1234, "rue Hubert", "Gatineau")); adresses.Add(new Adresse(3, 18255, "rue Sherbrooke", "Montreal")); adresses.Add(new Adresse(4, 705, "rue Harbour", "St-Hubert")); adresses.Add(new Adresse(5, 5235, "ave. Papineau", "Montreal")); // Requete LINQ //var resultat = from p in personnes where p.nom .Contains ("Fournier")select p; var resultat = personnes.Select(p => p.nom == "Fournier").ToList (); //Remplie la List foreach (var p in personnes ) { listBox1.Items.Add(p); } } }
Merci beaucoup de votre aide.
Configuration: Windows / Chrome 94.0.4606.61
A voir également:
- Requête LINQ
- Erreur de requete facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Loisirs / Divertissements
- Difficulté avec requête SQLite ✓ - Forum Android
5 réponses
personnes.Select(p => p.nom == "Fournier")
En gros, tu fais un Select donc tu extrais un boolen indiquant si la valeur est égale à ...
Je pense que tu visais plus un Where à la place du Select.
Merci NHenry,
Ca ne fonctionne pas non plus.
Si je veux lister les resultats d'une requete dans un dataGridView.
Je fais comment pour cela.
Merci encore
Ca ne fonctionne pas non plus.
Si je veux lister les resultats d'une requete dans un dataGridView.
Je fais comment pour cela.
Merci encore
Bonjour
au départ, tu parles de Listbox et maintenant de datagridview, mais sans nouveau code.
Donc on va parler de ce qu'on peut parler pour l'instant, la ListBox.
NHenry (que je salue) a mis le doigt sur un premier problème, à savoir que ce que tu cherches à faire c'est une clause where => on prend tous les enregistrements "où" le nom est Fournier.
La clause select permet de récupérer un ou plusieurs champ, dans ta question précédente, je t'ai montré comment sélectionner les prénoms dans une liste de contact.
Le 2eme problème se situe là
La collection personnes c'est la "base de données complètes", le résultat de la requête est dans la collection resultat.
En outre, toujours lors de ta précédente question, j'ai essayé de te montrer les avantages du binding et bien ici ça donnerait
Ca affichera la valeur de la propriété Prenom de chaque enregistrement de la collection.
Pour le datagridwiev, et toujours en binding, soit tu affectes sa propriété Datasource (mais tu ne peux personnaliser les colonnes) ou via un bindingsource comme dans le tuto que je t'ai déjà proposé.
au départ, tu parles de Listbox et maintenant de datagridview, mais sans nouveau code.
Donc on va parler de ce qu'on peut parler pour l'instant, la ListBox.
NHenry (que je salue) a mis le doigt sur un premier problème, à savoir que ce que tu cherches à faire c'est une clause where => on prend tous les enregistrements "où" le nom est Fournier.
La clause select permet de récupérer un ou plusieurs champ, dans ta question précédente, je t'ai montré comment sélectionner les prénoms dans une liste de contact.
Le 2eme problème se situe là
foreach (var p in personnes ) { listBox1.Items.Add(p); }
La collection personnes c'est la "base de données complètes", le résultat de la requête est dans la collection resultat.
En outre, toujours lors de ta précédente question, j'ai essayé de te montrer les avantages du binding et bien ici ça donnerait
listBox1.DataSource = null;//Pour reseter au cas où listBox1.DataSource = resultat; listBox1.DisplayMember = "Prenom";
Ca affichera la valeur de la propriété Prenom de chaque enregistrement de la collection.
Pour le datagridwiev, et toujours en binding, soit tu affectes sa propriété Datasource (mais tu ne peux personnaliser les colonnes) ou via un bindingsource comme dans le tuto que je t'ai déjà proposé.
Merci Whismeril,
Ca fonctionne bien pour la ListBox. L'Instruction control.DataSource = null; est très importante.
Ca fonctionne bien aussi pour le dataGridView.
J'ai mis des Titre a chaques colonnes.
J'ai mis un controle bindingSource dans la propriété DataSource.
Et dans "Edit columns"j'ai lié chaque colonnes avec la propriété Personne correspondantes.
Je te remercie beaucoup de ton aide.
j'apprend beaucoup avec tes interventions.
Ca fonctionne bien pour la ListBox. L'Instruction control.DataSource = null; est très importante.
Ca fonctionne bien aussi pour le dataGridView.
J'ai mis des Titre a chaques colonnes.
J'ai mis un controle bindingSource dans la propriété DataSource.
Et dans "Edit columns"j'ai lié chaque colonnes avec la propriété Personne correspondantes.
dataGridView1.DataSource = null; dataGridView1.DataSource = resultat.ToList ();
Je te remercie beaucoup de ton aide.
j'apprend beaucoup avec tes interventions.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question