Salut,
J'ai décidé de me mettre à jour (eh oui, mieux vaut tard que jamais) et de me lancer dans l'étude de linq.
Bien entendu je butte sur certaines choses.
Généralement je finis par trouver une solution, mais là je coince et je ne trouve pas ce que je ne fais pas bien.
Soit une base de donnée MSAccess contenant, entre autre, une table "point" qui contient, entre autre une colonne "NoPoint" et une autre colonne "NoPointNum".
La colonne "NoPoint" contient du string et "NoPointNum" contient du int.
Ne me demandez pas pourquoi, mais dans une autre table un champs contient la concaténation de ces 2 champs (je trouve cela parfaitement illogique mais je dois vivre avec).
Je veux donc trouver en linq comment créer mon where avec la concaténation de ces 2 champs (qui doivent former un string) pour le comparer.
Vu que je vais devoir faire plusieurs recherche, je charge tous les points en une fois par
qui fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var queryPoints = from point in points select point;
Ensuite, selon les besoin, je cherche à extraire un point particulier.
Pour cela j'ai essayé plusieurs choses mais je n'y arrive pas.
J'ai donc décidé de découper le problème.
Je cherche d'abord à trouver un point qui n'a qu'un numéro à chercher, ce qui me permet de ne pas m'occuper au départ de la concaténation.
J'ai donc écrit
point.NoPointNum étant un int et ligne.NumeroPoint1 étant un string, j'essaye de convertir le int en string, et c'est là que ça coince.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var queryPoint = queryPoints.Where(point => point.NoPointNum.ToString() == ligne.NumeroPoint1);
Je reçois "Fonction « CONVERT » non définie dans l'expression."
J'ai essayémais j'ai le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var queryPoint = queryPoints.Where(point => Convert.ToString(point.NoPointNum) == ligne.NumeroPoint1);
Comment dois-je faire pour convertir ce champs et pour concaténer les 2 ?
En fait, je cherche à traduire la ligne suivante en linq
Merci de vos z'avis z'avisés,
Code : Sélectionner tout - Visualiser dans une fenêtre à part where (point.NoPoint & point.NoPointNum == ligne.NumeroPoint1)
Jean-Marc
Partager