现有 
T_role_user 表有字段 userid ,roleid  保存用户和角色的对应.一个用户可能对应多个角色T_role 表 字段有roleid,rolename 保存 角色编号和 角色名称T_group 表 字段有groupid,groupname 保存 分组编号和分组名称T_group_user 表有字段 userid ,groupid  保存用户和分组的对应.一个用户可能对应多个组T_user 表 保存用户信息 字段主要就是 userid 现在我如何才能做到
用户名              角色名                     分组名
张三              总经理,经理,组长          财务,市场,支持
象上面那样全部显示出来。并且里面的那些角色和分组是用checkbox一样来显示.用户拥有这个角色或者在这个分组.该角色对应的checkbox就选中请大家帮忙!!谢谢了!!   

解决方案 »

  1.   

    对每个用户查询其角色 和 分组 然后绑定到 CheckBoxList 中如果准备由 sql 语句查询直接获取一个完整的角色列表,并且对于某个用户来说包含已有角色和不包含角色的话, 那么使用左/右外连接
      

  2.   

    -- e.g.Role 
    -- sql for MS SQL Server
    -- 
    SELECT RoleID, RoleName, CASE WHEN ru.UserID IS NULL THEN 0 ELSE 1 END IsInRole FROM T_Role r 
    LEFT OUTER JOIN T_role_user ru 
    ON r.RoleID = ru.RoleID AND ru.UserID = @UserID
    // .aspx 往 DataList 嵌入 CheckBox 便于直接绑定
    <asp:Datalist repeatcolumns=1 ...
    <itemtemplate>
    <asp:checkbox text='<%# Eval("RoleName") %>' cheched='<%# Eval("IsInRole") %>' ...
    ...
      

  3.   

    就是三次绑定阿,DataList绑定,在dl的DataItemBound里面绑定两个CheckBoxList 就行了阿;
      

  4.   

    谢谢大家的帮助和指点.TO 晓风残月  你那个方法好想只能查出一个人的.不能查出所有成员的属性.请问如何查出所有。谢谢TO octverve用户名              角色名                     分组名
    张三              总经理,经理,组长          财务,市场,支持这个是我需要显示的样式.不是DB设计.
      

  5.   

    select username,(select roleid from role where user.userid=role.userid),(select groupid from group where group.userid=user.userid) from user
      

  6.   

    先取出,数据库里的所有用户组,角色等,绑定到CheckBoxList,然后取出用户里面的用户组id,角色ID,相匹配的就选中。
      

  7.   

    你那个方法好想只能查出一个人的.不能查出所有成员的属性.请问如何查出所有=========你不会去掉 @UserID  参数? 还是你根本就没有理解之?
      

  8.   

    其实不是很难的问题 就是有点复杂 
    先用SQL把 用户查出来   放在一Table1里   再用一SQL   把角色查出来 放在一Table2里
    再用SQL把 组查出来 放在一Table3里
    把数据查出后 用表1滤表2 表3  然后拼到一个表里再用一TABLE 拼串  加上<checkbox id="" runat=""></checkbox>
    最后绑定上就成了
      

  9.   

    TO xeppp() ( 又看到你了。 你在我另外一个帖子了也出现了。才结完帖过来的。
    你的思路我会试下的。谢谢了.
      

  10.   

    如果这种问题,如果在SQL数据库
      

  11.   

    楼主这种问题,如果在SQL数据库区提问,应该可以用一次查询就可以做到,只是SQL语句要比较复杂。
      

  12.   

    呵呵。谢谢LS的指点。我把帖子移到SQL去看看!