IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

Utiliser LINQ pour un JOIN entre deux datatables


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Utiliser LINQ pour un JOIN entre deux datatables
    Bonjour

    Je suis (toujours) completement ignorant dans l'usage de Linq
    Mais il n'est jamais trop tard pour apprendre

    Voici un cas pratique ou je me dis que Linq pourrait etre utile plutot que d'utiliser un bete parcours en boucle

    Je dispose de deux tables T1, T2

    T1 contient AddrID, Rue
    T2 contient AddrID, Année, résultat

    J'aimerais pour chaque adresse donner la rue et les résultats par année
    Bien sur c'est trivial et je pourrais facilement faire cela a l'aide d'un parcours en boucle sur deux dataview triés mais je me dis que l'occasion est belle pour faire un essai avec Linq

    Quelle serait la syntaxe pour effectuer la jointure et le parcours ?

    Merci de votre aide

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Sur le site il y a un exemple assez simple sur le Join (la fonction )
    http://www.hookedonlinq.com/JoinOperator.ashx

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Meziantou

    Mais ton exemple concerne une jointure entre List
    Moi j'aimerais faire une Jointure entre DataTable
    Mais apparement Linq n'aime pas ca

    Could not find an implementation of the query pattern for source type
    'System.Data.DataTable'. 'Join' not found.
    Je continue a chercher meme si avec mes DataView ca tourne deja !

  4. #4
    Membre éclairé Avatar de bellak
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 325
    Par défaut
    une simple requête peut régler ton problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var quer = from q in T1
                   from s in T2
                   where q.AddrID = s.AddrID
                   select new {ID_ADRESSE = q.AddrID , RUE = q.Rue , s.Année , s.resultat};
    et si tu trouve que ca génère des doubles tu peux ajouter un DISTINCT

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Linq inutilisable avec DataTable
    Merci Bellak

    J'avais déja essayé cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var quer = from q in dtAdr
                   from s in dtStat
                   where q.AddrID = s.AddrID
                   select new {ID_ADRESSE = q.AddrID , RUE = q.Rue , s.Année , s.resultat};
    Mais comme je l'avais signalé il semble que Linq ne fonctionne pas sur une datatable

    Could not find an implementation of the query pattern for source type 'System.Data.DataTable' 'SelectMany' not found.
    J'ai donc continué avec mes DataView

  6. #6
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223

Discussions similaires

  1. jointure entre deux datatables
    Par olibara dans le forum C#
    Réponses: 6
    Dernier message: 27/06/2008, 17h35
  2. utiliser Criteria pour un JOIN WITH
    Par Naeco dans le forum Hibernate
    Réponses: 2
    Dernier message: 24/06/2008, 17h28
  3. jointure entre deux datatables
    Par olibara dans le forum C#
    Réponses: 5
    Dernier message: 18/04/2008, 12h52
  4. Symbole pour dire "compris entre deux nombres" ?
    Par JackBeauregard dans le forum Langage
    Réponses: 8
    Dernier message: 25/08/2006, 11h48
  5. [C#] Requete entre deux DataTables
    Par pc152 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/09/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo