我的数据库中存储了三个表:Speaker
,Language
和link_speaks
。他们三个都有多个属性。 link_speaks
用于将Speaker
与Language
“多对多”关系连接起来。主/外键关系在sql数据库中定义。
表信息:
我希望Windows窗体能够在Speaker
中为每个条目显示信息,并在其他两个表格中显示他/她所说语言的表格。
结果看起来很多like this(摘自我发现的this tutorial)
我怎样才能做到这一点?
答案 0 :(得分:0)
在主页面上设置绑定导航器,使数据源为整个tbl_Personen。 然后将datagridview上的bindingsource设置为该person对象相关人员的语言......
这是第一部分的一些代码(它不完美,但你得到了一般的想法):
using (var data = yourdataentities())
{
var person = data.Personen.FirstOrDefault();
formbindingsource.DataSource = person;
var languagesGuySpeaks = from p_x_l in data.link_spricht
join language in data.Sprachen on language.Id equals p_x_l.SprachID
where p_x_l.Person_ID == person.Id
select language;
datagridbindingsource.DataSource = languagesGuySpeaks;
}
然后添加一个事件处理程序,以便在您的人员更改时更新datagridbindingsource.DataSource(但是您要处理它;如下拉列表或其他内容)