Linq Méthode Field<> avec type de retour inconnu [Résolu]

Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
- - Dernière réponse : ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
- 16 mars 2008 à 15:56
Bonjour
J'essaie de faire des filtres de recherche sur un dataGridView.
Dès lors, j'ai une comboBox qui contient tous les champs de la table contenu dans le dataSet et un textBox où j'insère la valeur que je recherche.
Pour faire le filtre, j'utilise LINQ.

var query =

from f
in myDataSett.MyTable

where f.Id.
ToString().ToUpper().Contains(txtFindValue.Text.ToUpper())

select f;

Le problème est que je ne veux pas faire un switch pour chaque champ de ma table.
J'ai vu qu'il y a la méthode Field<>, le souci c'est qu'il faut lui donner un type de retour, et je ne sais pas quel type sera retourné. Ca dépendra du champ sélectionné.

Quelqu'un à une idée?

D'avance je vous remerci pour votre aide

LP
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
11
3
Merci
salut,

euh, si tu utilises "object", ca ne marche pas ? (ou sinon nullable object : object?) ?

ShareVB

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ShareVB
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
2
0
Merci
ShareVB, y a vraiment des jours où il faudrait pas se lever hein dis!
Bien joué, ca marche.
...Tous les types descendent de la class object. Aie aie aie
Merci bien pour le coup de pouce
Commenter la réponse de lemmingperceval
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
1
0
Merci
Salut,

Tu m'intéresse !
Tu peux me montrer le code que tu utilise ou le principe plus détaillé ?
1- Je n'ai jamais utilisé Linq
2- Je fais aussi des recherches dans un DGV en utilisant un COMBO mais je pense de maniere plus plus crapuleuse
Commenter la réponse de olibara
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
2
0
Merci
Salut,
Ecoute je n'ai pas vraiment le temps de faire un code aujourd'hui, mais demain je me débrouille pour t'en faire un si tu veux.
Par contre, tu peux déjà allé voir cet article : http://www.csharpfr.com/tutorial.aspx?id=784
Il parle de LINQ à un moment donné. Regarde plus précisément LINQ TO DATASET.
Linq c'est en fait un moyenne d'interrogé toute sorte d'élément, comme par exemple un object.
L'idée est de remplir un dataSet avec des données d'une table, ensuite de faire une requete sur ce dataset et d'envoyer le résultat sur un dataGridView. C'est pas énorme compliqué.

Ca marche comme ca? Tu as déjà quelques astuces.
Bonne journée
Commenter la réponse de lemmingperceval
Messages postés
670
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
1
0
Merci
Merci


Je vais lire cela avant d'aller dormir



L'idée est de remplir un dataSet avec des données d'une table, ensuite de faire une requete sur ce dataset et d'envoyer le résultat sur un dataGridView. C'est pas énorme compliqué.


Pour le moment je replis une table dans un dataset avec un query SQL et puis je remplis un datagrid avec cette table

Si je te comprend Linq serait une couche supplémentaire pour faire des select dans cette table afin de remplir le DGV a la carte sans reattaquer la DB en SQL
Commenter la réponse de olibara
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
11
0
Merci
salut,

dans une optique relativement plus simple que Linq (qui peut être toutefois très pratique), il existe des DataView qui te permettent de faire un tri et un filtrage dynamique :

quelque chose pour l'initialisation comme :
DataView dv = new DataView(dtTableDataTable)
dv.RowFilter = "col LIKE '%azer%'"
dv.Sort = "col DESC, col2 ASC"
datagridview.datasource = new bindingsource(dv,nothing) 'on peut surement se passer de bindingsource...

ensuite dès que tu changes une propriétés de "dv" ca update ton datagridview

ShareVB
Commenter la réponse de ShareVB