Linq Méthode Field<> avec type de retour inconnu

Résolu
lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 - 14 mars 2008 à 12:02
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

6 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
14 mars 2008 à 17:48
salut,

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

ShareVB
3
lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 6
14 mars 2008 à 19:06
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
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
15 mars 2008 à 20:12
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
0
lemmingperceval Messages postés 128 Date d'inscription mardi 18 décembre 2007 Statut Membre Dernière intervention 2 août 2009 6
16 mars 2008 à 11:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
16 mars 2008 à 12:41
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
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
16 mars 2008 à 15:56
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
0
Rejoignez-nous