对于高手来说不难,如何设置多对多表链接中的控件绑定?

老龙友 2011-10-28 02:54:56
我曾经是自定义类的坚定支持者,但是最近也开始仔细研究并准备把我的项目迁移到ADO.NET

情况是这样的,在项目中有时可能会出现一些并非简单的一对多的上下关系,而是多对多的关系

比如,有两个表,权限表,角色表

一个角色可以拥有多个权限,但是一个权限却并不一定只隶属于一个角色,而是可能隶属于多个角色

这样就必须用另外一个表来表达这个关系,我的设计假设是这样的

权限表:

rights:
RightID
RightName


角色表:
Roles
RoleID
RoleName

中间表:

Role_Right:
ID
Role_ID
Right_ID

关联关系当然是,RightID 关联到Right_ID,Role_ID关联到RoleID

现在的问题是,我在Form上,应该如何设置,才能体现这种关联

假设想在Form上,用ComboBox和ListBox来分别表示Role和Right,当ComboBox中的Role选择项发生更改时,ListBox中列出与之相关的Right


请高手指点一下
...全文
57 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
老龙友 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ylly11111 的回复:]

用2个combobox和一个listbox,第一个combobox中加载role表的名称,然后选择一个角色,再根据所选角色,加载与之对应的权限到第二个combobox中,再选择第二个combobox中的某个权限,列出与之相关的角色名到listbox中
[/Quote]

你可能没明白我要做什么,我是希望达到数据绑定,自动增删改的效果。

不过现在已经解决了,原来只要设置了表关系(外键约束),就可以在DataSet中看到那个中间表作为子表显示在父表的field list中,用鼠标拖动该节点直接到form就可以生成一个datagridview,在这个datagridview里修改相应的列属性,将默认的datagridviewtextbox,修改为datagridviewcombobox,然后将数据源设置为子表,displaymember和valuemember分别设置为name和id即可
ylly11111 2011-10-29
  • 打赏
  • 举报
回复
用2个combobox和一个listbox,第一个combobox中加载role表的名称,然后选择一个角色,再根据所选角色,加载与之对应的权限到第二个combobox中,再选择第二个combobox中的某个权限,列出与之相关的角色名到listbox中
老龙友 2011-10-28
  • 打赏
  • 举报
回复
你说的我也想过,但具体怎么操作呢?他们中间隔着一个表呢啊
一只熊猫 2011-10-28
  • 打赏
  • 举报
回复
你说form,那就是winform程序吧?
最简单的办法:在combo的selecteditemchange事件中重新查询rights并填充listbox

如果是wpf,那就高级了,怎么绑都行啊~ 正在学习中。
老龙友 2011-10-28
  • 打赏
  • 举报
回复
没有人知道吗,还是大家都不屑于用ADO.NET
老龙友 2011-10-28
  • 打赏
  • 举报
回复
在线等回复。

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧