Bonjour,
après avoir cherché en vain un peu partout solution à mon problème, j'en fait appel à vous. Je dispose de :
-une base SQL Express (pilotes de connexion OleDB)
-une table de matières (inox, acier, fibre de verre etc)
-une table article contenant une clé étrangère vers la table des "matières"
Un article est composé d'une seule matière mais cette matière peut composer d'autres articles.
Sur mon form j'ai un datagrid des textboxes et un combobox.
Le but est de sélectionner un article affiché dans le datagrid et mettre à jour les textboxes (jusqu'ici ça marche) mais aussi le combobox matière (remplissage avec toutes les valeurs de la table matières ET sélection de la matière de l'article).
Le problème c'est que le combobox se remplit bien mais je n'ai pas de sélection de la matière liée, et ce malgré la relation crée entre les deux tables.
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 OleDbConnection oleDbConnex= new OleDbConnection("Provider=SQLNCLI;Server=" + "server\\SQLExpress" + ";Database=" + "EDV" + ";Trusted_Connection=" + "Yes" + ";"); DataSet ds = new DataSet(); OleDbCommand cmd = new OleDbCommand("select * from EDV_ARTICLE", oleDbConnex); OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = cmd; da.Fill(ds,"ARTICLE"); cmd.CommandText = "SELECT * FROM EDV_MATTER"; da.SelectCommand = cmd; da.Fill(ds, "MATTER"); oleDbConnex.Close(); DataRelation dr = new DataRelation("dr", ds.Tables["MATTER"].Columns["MAT_L_MATTER"], ds.Tables["ARTICLE"].Columns["ART_N_MATTER"]); ds.Relations.Add(dr); this.gridArticle.DataSource = ds; this.gridArticle.DataMember = "ARTICLE"; this.tbART_L_ARTICLE.DataBindings.Add(new Binding("Text", ds, "ARTICLE.ART_L_ARTICLE")); this.tbART_NAME.DataBindings.Add(new Binding("Text", ds, "ARTICLE.ART_NAME")); this.cbMAT_NAME.DataSource = ds.Tables["MATTER"];
Partager