|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Toto BrownyDéveloppeur informatique Inscription : mars 2008 Messages : 198 ![]() |
Juste pour la postérité ...
Comme j'ai galéré pour le mettre au point, je partage un bout de code qui je l'espère aidera tous les newbies du Linq comme moi. La problématique: Un repeater à remplir avec une liste de commande (source un dataview). Sur ce repeater, j'ai un filtre multiple critère. Or un de ces critères est le constructeur. Mais les constructeurs (les articles de la commandes) sont dans un 2eme dataview. Solutions 1: Je refais une requête SQL avec toutes la lourdeur de faire des appels entre mon site et la BDD Solution 2: Je fais un join par Linq de mes 2 dataview, donc un seul appel à la BDD Code :
Code :
<%# String.Format("{0:dd/MM/yyyy}", Eval("dDateCommande"))%> Code :
__________________
Créateur de bugs professionnel Ma philosophie en 4 temps: -Ce n'est qu'en essayant continuellement que l'on finit par réussir. -Plus ça rate, plus on a de chances que ça marche. -Ne jamais révéler tout son savoir -... |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 16 728 ![]() |
Dans ton code tu fais un join entre les DataTable, pas les DataView (dtvLigne.Table, dtvCommandes.Table). Et ça ne fait aucun appel à la BDD : les données sont en mémoire, les appels à la BDD ont déjà été faits avant pour remplir les DataTable...
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
00
|
|
|
#3 | ||||
|
Membre confirmé
![]() Toto BrownyDéveloppeur informatique Inscription : mars 2008 Messages : 198 ![]() |
Oui je suis d'accord, c'est ce que j'essayé de dire ...
L'appel à la BDD se fait que pour la solution 1 (celle que j'aurais fait sans l'existence de Linq) Je précise aussi que, j'ai fait une correction au code car en faisant dataview.table , on perd les rowfilter et le sort Code :
Par contre, je ne comprends pas pourquoi, je ne peux pas faire Code :
J'ai vraiment du mal avec les type de retour de Linq
__________________
Créateur de bugs professionnel Ma philosophie en 4 temps: -Ce n'est qu'en essayant continuellement que l'on finit par réussir. -Plus ça rate, plus on a de chances que ça marche. -Ne jamais révéler tout son savoir -... |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 16 728 ![]() |
Le type de retour de ta requête est IEnumerable<DataRow>, tu ne peux donc pas l'affecter à un DataView... par contre avec un AsDataView derrière, ça devrait le faire
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
10
|
|
|
#5 |
|
Membre confirmé
![]() Toto BrownyDéveloppeur informatique Inscription : mars 2008 Messages : 198 ![]() |
Je suppose que tu as raison ...
Faudra que j'essaie lors de la prochaine publication Merci
__________________
Créateur de bugs professionnel Ma philosophie en 4 temps: -Ce n'est qu'en essayant continuellement que l'on finit par réussir. -Plus ça rate, plus on a de chances que ça marche. -Ne jamais révéler tout son savoir -... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com