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

Entity Framework Discussion :

Comment charger un datagridview avec 2 tables différentes ?


Sujet :

Entity Framework

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Comment charger un datagridview avec 2 tables différentes ?
    Bonjour,

    je rencontre un problème depuis ce matin et je n'arrive pas à trouver la solution. (C# VS2010 Framework4.0)
    Je m'explique : je rempli un datagridview via une requete linq to entities en utilisant du databinding, jusque là pas de soucis.

    Dans mon datagridview j'aimerai faire apparaitre un champ Name d'une autre table (relation 1-n entre les 2 tables). Le problème c'est que j'ai accès à la relation et pas accès directement au champ Name, et impossible de l'ajouter dans mon grid car sinon mon type de ma table est modifié.

    Il faudrait que je joue sur l'affichage du datagridview pour qu'il m'affiche la propriété Name à la place du nom de la relation mais je ne sais pas comment faire (voir la colonne status du printscreen ci-dessous).

    requete entity pour charger le grid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var query = from cm in context.ContactsMail.Include("StatusMail")
                     orderby cm.LastName, cm.FirstName
                     select cm;
    Images attachées Images attachées  

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    En générale, il affiche le nom de la relation dans le Dtgv quand la propriété "DataPropertyName" de la colonne est Null.

    Si tes relations entre tes tables sont correctes tu ne devrais pas avoir de mal a sélectionner les champs d'une table connexe dans ta requete. Et ce en spécifiant le chemin de la deuxième table dans ton orderby : cm.AutreTable.Name


    Voila, j'espere avoir compris ce que tu recherchais

  3. #3
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    et si tu fais un join classic sans utilser l'include ...
    Voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Public Shared Function GetInvitesRepas(ByVal IdInv As Integer, ByVal LesDatas As kickoff2012Entities) As Object
            Try
                Dim Query = (From Cop In LesDatas.Contacts Join Inv In LesDatas.InvitationsRepasInvites On Cop.IDContact Equals Inv.IDContact Where Inv.IDInvitation = IdInv Order By Cop.Nom, Cop.Prenom Select Cop, Inv)
                Dim Query2 = From u In Query.ToList() Select New With {.IDContact = u.Cop.IDContact, .NomComplet = GetNomComplet(u.Cop), .LibelleFonction = u.Cop.LibelleFonction, .LibelleSociete = u.Cop.LibelleSociete, .StatutInvitation = u.Inv.StatutInvitation}
                Return Query2
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
    Query2 me permet de récupérer que les infos utiles
    Ex: mettre das un rpt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    rptInvites.DataSource = ContactClass.GetInvitesRepas(EditRepas.IDInvitation, LesDatas)
                rptInvites.DataBind()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <asp:Repeater ID="rptInvites" runat="server">
                                    <ItemTemplate>
                                        <tr>
                                            <td valign="top">
                                                <asp:Image runat="server" ID="IMG"></asp:Image>
                                            </td>
                                            <td>
                                                <asp:Label runat="server" Text="" ID="NOM"><%#Eval("NomComplet")%></asp:Label><br />
                                                <asp:Label runat="server" Text="" ID="LIBSOC" CssClass="TXT"><%#Eval("LibelleSociete")%></asp:Label><br />
                                                <asp:Label runat="server" Text="" ID="LIBFON" CssClass="TXT"><%#Eval("LibelleFonction")%></asp:Label>
                                            </td>
                                                                                </tr>
                                    </ItemTemplate>
                                </asp:Repeater>
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/03/2007, 11h50
  2. Réponses: 6
    Dernier message: 29/11/2006, 11h56
  3. Réponses: 11
    Dernier message: 15/11/2006, 16h52
  4. Comment synchroniser mon Treeview avec ma table
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 2
    Dernier message: 21/10/2006, 13h54
  5. Réponses: 8
    Dernier message: 13/03/2006, 17h37

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