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

Accès aux données Discussion :

[C# ado.NET] perdu avec les datarelations


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut [C# ado.NET] perdu avec les datarelations
    Bonjour,
    j'admets ne plus très bien savoir quoi faire, je suis débutant en C# et en ADO.net.
    pour le C# pas de problème (enfin pas trop) mais je bloque avec les datarelations.

    je possède 2 tables, je fais le lien grace à 2 champs jusque la c'est bon mais au moment d'afficher le résultat de la relation dans un datagridview, il ne m'affiche que les lignes enfants de mon premier enregistrements parent.

    je sais pas si c'est très clair

    au niveau du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          //création de la relation
           DataColumn[] parent = new DataColumn[2];
           DataColumn[] enfant = new DataColumn[2];
           iri[0] = dbDataSet.Tables["parent"].Columns["champ1"];
           iri[1] = dbDataSet.Tables["parent"].Columns["champ2"];
           idcc[0] = dbDataSet.Tables["enfant"].Columns["champ1"];
           idcc[1] = dbDataSet.Tables["enfant"].Columns["champ2"];
           relIdc = new System.Data.DataRelation("Relation", parent,enfant, false); 
     
           //affichage du résultat dans le datagridview
            aDataGridView1.DataSource = db.dbDataSet.Tables["parent"];
            aDataGridView1.DataMember = "Relation";
    si vous pouvez m'aider merci

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Juste la première et pas les autres lignes c'est cela ?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    exactement et si j'affiche la table parent dans un autre datagridview(parentDataGridView), les lignes de la relation qui seront affichées correspondront à la ligne parent sélectionné dans parentDataGridView.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    bonjour,
    Une relation entre table affiche une ligne de la table parent et uniquement les lignes de la table enfants liées au parent.
    exemple avec 2 datagridview
    le premier est lié(binding) à la table parent, le deuxième à la table enfant à travers la relation.
    Lorsque on sélection une ligne de la table parent les ligne de la table enfants liées au parent s'affichent dans le 2ème datagridview.
    bon boulot. Jean

  5. #5
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Et bien c'est normal.
    En effet, supposons que tu aies 2 DataGridView, les deux DataGridView sont configurés de manière à ce que le premier afficher un DataTable parent et le deuxième un DataTable enfant, les deux DataTables étant reliées par une relation.
    Le DataGridView enfant affichera les lignes enfant de la ligne parent sélectionné dans le premier DataGridView.
    Si tu souhaites tout afficher et bien tu ne dois pas définir la propriété DataMember du DataGridView tel que tu l'as fait.

    Bye

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    D'accord je comprends un peu mieux, mais si je ne mets pas le datamember
    je n'ai que la table parent et c'est normal. Alors comment je dois faire pour afficher le resultat de ma datarelation un peu comme une jointure sql ?

  7. #7
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    que souhaites-tu exactement ?
    Parce que si je penses comprendre:
    Supposons qu'on ait une table parent Commande:
    IdCde
    RefCde
    DateCde
    et une table enfant DetailCommande
    IdCde
    RefPdt
    Qute
    En fait tu souhaiterais afficher dans ton datagridview :
    RefCde
    RefPdt
    Qute
    C'est ça ?
    Si oui alors tu dois fusionner tes deux DataTable et définir la table résultante comme DataSource de ton DataGridView.

    Si non, alors tu souhaites peut-être tout simplement afficher la table enfant dans ce cas tu attribues au DataSource la table enfant

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    tonDataGridView.DataSource = taTableEnfant;


    Bye

  8. #8
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    d'accord je pensais que les datarelations correspondaient à ce principe de fusion .
    Donc la ma fusion je dois la faire en sql ? (je veux être sur d'avoir bien compris)

  9. #9
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    et bien oui ça peut-être une solution, tu le fais dans ta requête sql et ensuite tu n'as plus besoin d'utiliser la méthode DataTable.Merge.

    Bye

  10. #10
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    merci beaucoup j'ai donc choisi la jointure sql,
    maintenant je comprends un peu mieux le principe de datarelation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [.Net] Probleme avec les namespace
    Par ksoft dans le forum MFC
    Réponses: 3
    Dernier message: 07/06/2006, 17h23
  2. [VB.Net] Pb avec les treeview, fan d'algo...
    Par bisounux dans le forum ASP.NET
    Réponses: 1
    Dernier message: 01/02/2006, 16h31
  3. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  4. [VB.NET] Probleme avec les fichiers!!
    Par ludovic85 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/01/2005, 17h12
  5. [IB v7.1][C#][ADO.NET] Démarrer avec IB 71
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 14
    Dernier message: 05/08/2003, 12h25

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