首先,我正在尝试了解 DataGridView/BindingSource/DataRelation 等。我已经阅读了一些教程并收集了有关该主题的信息。到目前为止,我认为我了解了基础知识,现在我正在尝试用我学到的东西进行实验。
到目前为止,我正在使用本教程中的代码: https ://msdn.microsoft.com/en-us/library/c12c1kx4%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang =csharp#code-snippet-1
在我的项目中有 3 个表:
Table A
A_id eng_word
0 dog
1 cat
Table B
B_id ger_word
0 Hund
1 Katze
2 Maus
Table C (Relation)
A_id B_id
0 0
0 1
1 1
1 2
我的目标是必须为每个表 A 和表 B 使用 BindingSource 和 DataRelations 的 DataGridViews,这样当我单击 DataGridView A 中的条目时,会显示表 B 中的所有元素,这可能是根据表 C 的翻译。
DataRelation relation = new DataRelation("Relation",
data.Tables["tableA"].Columns["A_id"],
data.Tables["tableB"].Columns["B_id"]);
data.Relations.Add(relation);
bindingSourceA.DataSource = data;
bindingSourceA.DataMember = "tableA";
bindingSourceB.DataSource = bindingSourceA;
bindingSourceB.DataMember = "Relation";
如果不必在表 B 和表 C 上调用连接,这显然是行不通的,但我认为这可能与 DataRelation 和 BindingSource 一起使用。从表 A 到表 C 的关系不是问题,但对我来说,持续到表 B 似乎是不可能的。
是否有任何方法可以实现我的目标,或者这种方式只是错误的?任何正确方向的建议或指示将不胜感激。