begin process at 2012 02 14 05:32:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

WebControl

 > 

Problème ItemDataBound, DataItem avec LINQ


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème ItemDataBound, DataItem avec LINQ

samedi 24 janvier 2009 à 19:01:41 | Problème ItemDataBound, DataItem avec LINQ

walterskinner

Bonjour,


Cela fait maintenant deux jours que je cherche à récupérer les valeurs d'un DataItem dans un ItemDataBound générer à partir d'une requête LINQ.


Voici la requête Linq :

        Dim req1 = From p In gestFloContext2.detailsOperation _

                   Where p.NumOperation = numeroOperation _

                   Select New With {p.NumOperation, p.DateVacation} Distinct


En gros, quelque soit mes essais de cast, j'ai le message d'erreur suivant :

Impossible d'effectuer un cast d'un objet de type 'VB$AnonymousType_0`2[System.String,System.DateTime]' en type .


A force de faire des recherches avec notre ami GOOGLE, j'ai fini par trouver cela :

            Dim monType As Type = e.Item.DataItem.GetType()

            Dim myNumOperation As System.Reflection.PropertyInfo = monType.GetProperty("NumOperation")

            Dim maValeur As String = Convert.ToString(myNumOperation.GetValue(e.Item.DataItem, Nothing))


Cela fonctionne très bien. Mais cela me semble très lourd puisqu'il faut le faire pour chaque valeur.

Quelqu'un a-t'il une idée plus simple ?


Merci de votre aide.


Walter

samedi 24 janvier 2009 à 19:49:48 | Re : Problème ItemDataBound, DataItem avec LINQ

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonsoir,

en VB tu dois pouvoir faire e.item.DataItem.NumOperation, en interne le compilo VB utilisera la reflection donc pas de gain perf mais ce sera plus clair.

Mais ce comportement est normal, lorsque tu utilises un type anonyme (ce que je déconseil ... tout comme utiliser les mots clés "Linq" (tout comme utiliser des requetes d'accès aux données dans le code behind d'une page)) c'est le compilo qui va créer à la volée le type, il n'est pas connu et ne peux pas etre connu dans ton code ! 


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
samedi 24 janvier 2009 à 21:01:42 | Re : Problème ItemDataBound, DataItem avec LINQ

walterskinner

Merci pour ta réponse. Cela fonctionne très bien.

 

Par contre je comprends de ne pas devoir utiliser de type anonyme, mais je ne vois pas comment avec LINQ. Comment « CASTER » une requête LINQ ?

Ou me déconseilles-tu l'utilisation de LINQ pour des requêtes de lecture ?

 

Merci de ton aide

dimanche 25 janvier 2009 à 03:27:47 | Re : Problème ItemDataBound, DataItem avec LINQ

jesusonline

Membre Club Administrateur CodeS-SourceS
comment caster une requete linq ? le résultat est un IEnumerable (enfin un IQueryable) tu peux donc retourner un IEnumerable<Person> au niveau de ta couche métier.

Je ne déconseil pas linq, juste les nouveaux mots clés.

var q = from p in dc.Persons
            where p.Name.StartsWith("toto")
            select p;

peut aussi bien s'ecrire de facon plus lisible

IEnumerable<Person> q = dc.Persons
                                         .Where(p => p.Name.StartsWith("toto");


Je te conseil également de rajouter un .AsEnumerable à la fin pour "convertir" le IQueryable en IEnumerable afin de ne pas modifier l'arbre d'expression dans la couche UI.


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant


Cette discussion est classée dans : type, linq, itemdatabound, dataitem, numoperation


Répondre à ce message

Sujets en rapport avec ce message

Pb de "" [ par viper ] Comment transformerune variable de type caractere en type numerique en vbscript Pb de recuperation d'un champ (urgent entreprise) [ par ankou ] Dans une base SQL Server, j'ai un champ dans une table de type Text. Ensuite dans une page ASP, je fait une requete sur cette table et je recupere la type incompatible [ par michel ] J'ai une erreur type incompatible dans un script et j'arrive pas à le faire marcher.C'est un script d'authentification tout simple. Type d'erreur Vérification du type de la donnée [ par Psy ] slt à tous, voila mon pb : A partir d'un formulaire, le client m'upload un fichier mais j'aimerais verifier avant l'upload que le fichier est bien du ASP [ par gphys ] J'essaie désespérément de me connecter à ma base de données et j'ai ce type de message :Erreur d'exécution Microsoft VBScript erreur '800a000d' Type i Zone d'input de type File [ par ToyToy ] Salut...HTML/ASP :Est il possible de donner une valeur par défaut à un champ d'input de type file ?Merci... D'1 réponse éventuelle ; ) type incompatible"ubound" [ par funkytrax ] hello! dans ma page produit.asp, je clique "Commander le produit" pour ajouter un nouveau produit avec addcaddie.asp.mais j'ai erreur suivante:"Erreur Convertion de type [ par jmg ] bonjour,sauriez vous comment convertir un String en Number?je n'ai trouvé que cela ou le principale à l'ère d'etre ommis:http://www.le-webmestre.net/w Type mismatch 'LaDate' [ par nirega ] BONJOUR J'AI MON SCRIPT QUI FONCTIONNE TRES BIEN SUR MON ORDI ....MAIS DES QUE JE LE ROULE SUR L'HEBERGEUR IL ME SORT COMME ERREUR:Type mismatchAU DEB type de formulaire [ par mavric35 ] Je cherche tous les type de formulaireSi quelqu'un peu m'aider


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales