DataBinding到相关的布尔列,多对多关系

时间:2010-01-05 14:57:14

标签: .net sql data-binding left-join

这是一个WinForms应用程序。

TABLEA和TABLEB中的行之间存在多对多关系。在TABLELINK中,TABLEA中的每一行都有一条与TABLEB中的行相关的记录。想想“用户”和“角色”或类似的东西,每个TABLELINK记录表明“用户X有角色Y”。

我正在使用数据绑定对象浏览TABLEA记录。没问题。这不是网格,只是具有单独TextBox控件的表单。

我想显示一组复选框,每个复选框对应于TABLEB中的一行。我想将TABLELINK数据绑定到每个复选框的“checked”属性,因此当我们查看记录X时,如果有与T和Y匹配的TABLELINK记录,则会检查框Y.

我有一段时间创建这种关系并将其绑定到复选框,这些复选框必须在运行时创建,因为设计人员不知道会有多少关系。从概念上讲,在SQL中这是select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y但我仍然坚持如何将其绑定到各个复选框。

我的两部分问题是:a)我是否以良好的方式开始构建这个问题? b)如果是,如何将此查询(或类似查询)的结果绑定到各个复选框?

1 个答案:

答案 0 :(得分:1)

不确定a) - 我一直想知道自己是否正确行事。

我所做的就是获取数据集 - 并渲染名称网格(基于数据集中的表1),然后根据数据集的查询(数据集中的表2)呈现复选框列表,并检查其是否已检查不是基于第二部分中的数据

不确定你想要的答案,但它确实有效!