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 :

[ADO.NET]Comment réaliser une relation sur plusieurs champs?


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 9
    Points : 12
    Points
    12
    Par défaut [ADO.NET]Comment réaliser une relation sur plusieurs champs?
    Bonjour,

    Sur un DataSet contenant deux DataTable est-il possible d'ajouter une relation impliquant plusieurs champs de chaque Datatable. A moins que je n'ai raté quelque chose dans le framework je n'ai trouvé que le cas d'une relation sur un seul champ de chaque table.

    Je vous remercie d'avance de m'apporter vos lumières.

  2. #2
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    et bien tu creer plusieur relation et chacune d'elle associe un champ a un autre.

  3. #3
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Comme te le dit judicieusement zeavan, une DataRelation ne s'applique sur un seul champ commun entre 2 DataTables. En conséquence si plusieurs champs sont communs => plusieurs DataRelations
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Merci pour vos réponses,

    Cependant il me manque des éléments pour résoudre le problème que j'avais à l'esprit en posant ma question précédente.
    Je veux étendre à deux tables liées par plusieurs champs une technique qui fonctionne bien dans le cas de deux tables liées par un seul champs.

    A titre d'exemple simplifié: Je veux utiliser deux Datagrid dgClients et dgCommandes pour afficher les données de deux tables Clients et Commandes avec synchronisation. On utilise:

    - Un DataSet ds
    - Deux DataTable dtClients et Commandes de ce DataSet
    - Une relation sur le champs CliCode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ds.Relations.Add("RelCliCmd", _ 
    	dtClients.Columns("CliCode"), _ 
    	dtCommandes.Columns("CliCode"))
    dgClients.SetDataBinding(ds, "Clients")
    dgCommnades.SetDataBinding(ds, "Clients.RelCliCmd")
    Mon probleme concerne la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgCommandes.SetDataBinding(ds, "Clients.RelCliCmd")
    à utiliser pour deux champs
    Je regarde peut être à coté de la bonne solution mais pour l'instant je ne vois pas.

    Citation Envoyé par neguib
    Comme te le dit judicieusement zeavan, une DataRelation ne s'applique sur un seul champ commun entre 2 DataTables. En conséquence si plusieurs champs sont communs => plusieurs DataRelations
    Hola señor,

    Ce n'est pas tout à fait exact. La classe DataRelation contient un constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Sub New(String, DataColumn(), DataColumn())
    Si ca peut servir à d'autres, pour ajouter une relation multichamps à deux DataTable dt1 et dt2 sur deux champs x et y on peut utiliser un code du type suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim cols1() As DataColumn = {dt1.Columns("x"), dt1.Columns("y")}
    Dim cols2() As DataColumn = {dt2.Columns("x"), dt2.Columns("y")}
    ds.Relations.Add("Rel", cols1, cols2)

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 26/05/2006, 15h08
  2. [ADO.Net] Comment réaliser une jointure bindée ?
    Par prophetky dans le forum Accès aux données
    Réponses: 4
    Dernier message: 18/02/2006, 16h17
  3. Réponses: 3
    Dernier message: 21/10/2005, 09h54
  4. [ADO.NET] Comment rendre une certaine colonne "AutoIncrement" ?
    Par maitrebn dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/03/2005, 22h12
  5. Réponses: 4
    Dernier message: 03/12/2004, 11h18

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