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

C# Discussion :

Relation maitre détail dans un dataset


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Relation maitre détail dans un dataset
    Bonjour,

    J'ai un gros soucis depuis deux jours.
    Nous avons un dataset remplit avec deux tables.
    Une table personnes physiques et une code postal.
    Une relation a été définie dans le dataset

    J'essais à l'aide de bindinSource (2) d'obtenir le nom de commune automatiquement quand on tape le cp. Code postal qui lui est la clé étrangère dans la table personne physique.


    Je ne sais trop comment m'y prendre, mais il doit exister une fonction simple pour obtenir le résultat.

    Merci de l'attention que vous voudrez bien me porter.

    Bonne fin de journée.


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    namespace ArthurConfiture
    {
        public partial class FPPH : Form
        {
            string RConStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Arthur_Confiture\\DB\\ArthurConfiture.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            SqlConnection RCon;
            SqlDataAdapter RAdapter;
            DataSet RDataSet = new DataSet();
            BindingSource RBinSrcPPH = new BindingSource();
            BindingSource RBinSrcLoc = new BindingSource();
     
            public FPPH()
            {
                InitializeComponent();
            }
     
            private void FPPH_Load(object sender, EventArgs e)
            {
                RCon = new SqlConnection(RConStr);
     
                try
                {
                        //Alimenter le dataset avec table PPH et T_LOC
                    RAdapter = new SqlDataAdapter("select * from T_LOC order by CP_LOC", RCon);
                    RAdapter.Fill(RDataSet, "T_LOC");
                    RAdapter.Dispose();
                    RAdapter = new SqlDataAdapter("select ID_PPH, FONC_PPH, RSOC_PPH, NOM_PPH, PRN_PPH,RUE_PPH, NIMM_PPH,"+
                                                  "NBOI_PPH, TEL_PPH, GSM_PPH,PPH_FK_LOC from T_PPH", RCon);
                    RAdapter.Fill(RDataSet, "T_PPH");
     
                    // Création de la contrainte d'intégrité
                    ForeignKeyConstraint RContrainte = new ForeignKeyConstraint("CHK_T_PPH_TLOC", RDataSet.Tables["T_LOC"].
                                                            Columns["ID_LOC"], RDataSet.Tables["T_PPH"].Columns["PPH_FK_LOC"]);
                    RDataSet.EnforceConstraints = true;
     
                    //Définition de la relation maitre détail
                    DataRelation RDatarelation = new DataRelation("Relation",
                                                    RDataSet.Tables["T_LOC"].Columns["ID_LOC"],
                                                    RDataSet.Tables["T_PPH"].Columns["PPH_FK_LOC"]);
                    RDataSet.Tables["T_PPH"].ParentRelations.Add(RDatarelation);
     
     
                    //Alimenter la CBBOX CP
                    foreach (DataRow RRow in RDataSet.Tables["T_LOC"].Rows)
                    {
                        CBCP.Items.Add(RRow["CP_LOC"].ToString());
                    }
     
                    //Lier les données.
                    RBinNav.BindingSource = RBinSrcPPH;
                    RBinSrcPPH.DataSource = RDataSet;
                    RBinSrcPPH.DataMember = "T_PPH";
     
                    RBinSrcLoc.DataMember = "Relation";
                    RBinSrcLoc.DataSource = RBinSrcPPH;
     
     
     
     
     
     
                    TBId.DataBindings.Add("Text", RBinSrcPPH, "ID_PPH");
                    CBRaisSoc.DataBindings.Add("Text", RBinSrcPPH, "RSOC_PPH");
                    TBNom.DataBindings.Add("Text", RBinSrcPPH, "NOM_PPH");
                    TBPrn.DataBindings.Add("Text", RBinSrcPPH, "PRN_PPH");
                    TBRue.DataBindings.Add("Text", RBinSrcPPH, "RUE_PPH");
                    TBNum.DataBindings.Add("Text", RBinSrcPPH, "NIMM_PPH");
                    TBBte.DataBindings.Add("Text", RBinSrcPPH, "NBOI_PPH");
     
                    TBLOC.DataBindings.Add("Text", RBinSrcPPH, "PPH_FK_LOC");
     
     
                    TBTel.DataBindings.Add("Text", RBinSrcPPH, "TEL_PPH");
                    TBGsm.DataBindings.Add("Text", RBinSrcPPH, "GSM_PPH");
                   LbLocalité.DataBindings.Add("Text", RBinSrcLoc, "NOM_LOC");
     
     
     
     
     
                }
                catch (Exception RException)
                {
                    MessageBox.Show(RException.ToString(), "Erreur chargement DB");
                }
                finally
                {
                    if (RCon != null && RCon.State == ConnectionState.Open)
                        RCon.Close();
                }
            }
     
            private void BtQuitter_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Waouw !

    sur un combo
    tu peut lier les données par la relation avec

    Dans les propriétés de la ComboBox renseigner :

    * Datasource : le Dataset des données ( Ex: MonDataSet )
    * DisplayMember : le champs à afficher dans la combo ( Ex: Fournisseur.Nom )
    * ValueMember : l'identifiant de la table parent à renseigner dans la table enfant ( Ex: Fournisseur.idFournisseur)
    * DataBinding / SelectedValue : l'identifiant de la table enfant ( Ex: MonDataSet - Facture.idFournisseur)

    et c'est tout

    (bien entendu le chargement du fichier pour la combo est chargé à l'avance !!)

    Gilles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut Merci
    Des milliers de merci.

    J'ai cherché pour comprendre mais ça marche très bien.

    Encore merci

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    ce fut un plaisir

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut
    Et c'est possible d'avoir un exemple ????

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

Discussions similaires

  1. Relation Maitre Détails DataSet
    Par Frisco42 dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/01/2009, 20h18
  2. Réponses: 6
    Dernier message: 29/11/2008, 07h16
  3. la suppression dans la relation maitre détail
    Par 6AAAAA dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/07/2007, 20h20
  4. Relation maitre détail
    Par codial dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/11/2006, 10h02
  5. Gérer une relation Maitre détail
    Par codial dans le forum Bases de données
    Réponses: 10
    Dernier message: 16/10/2006, 10h01

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