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();
        }
    }
}