问题描述:
    现在有两个表:module 和 userpermit
    表结构如下:
      module:
             moduleid , module_name
      userpermit:
             userid, moduleid,permit (其中permit字段说明当前userid所对应的用户,是否有权利访问这个moduleid所对应的模块)
      datagrid的结构如下:
             id(对应userid),模块名称,checkbox问题要求:
    用一个sql语句把所有的模块都在datagrid上显示出来,并且如果此模块允许userid所对应的user访问,则其在datagrid中对应的checkbox被选中
    或者那位大哥有已经实现了代码,给小弟也可以,万分感谢问题注意点:
    一定是把模块表(module)中所有的模块都在datagrid中显示出来,不能只显示被允许的,这点请各位大虾一定要弄明白小弟在线、喷血、跪求

解决方案 »

  1.   

    datasource: select userid, module_name,permit where module.moduleid=userpermit.moduleid而checkbox根据permit的值决定是否checked(在ItemDataBound里)
      

  2.   

    select userid,module_name,permit from  module as a inner join  userpermit as b 
    on  a.moduleid = b.moduleid然后在datagrid的OnItemDataBound事件中判断
    e.item.dataitem(2)的值,也就是permit的值,按你的需求判断checkboxlist是否选中
      

  3.   

    try:
    select "aaa",module.module_name,"1"
    from userpermit,module
    where userpermit.moduleid=module.moduleid and
          userpermit.userid="aaa"
    union
    select "aaa",module.module_name,"0"
    from module
    where module.moduleid not in 
    (select userpermit.moduleid from userprtmit,module 
    where userpermit.moduleid=module.moduleid and
    userpermit.userid="aaa")
      

  4.   

    select userpermit.userid,module.module_name,userpermit.permit from module,userpermit where userpermit.moduleid = module.moduleid
      

  5.   


    SELECT M.moduleid, M.module_name, U.userpermit FROM module M 
    LEFT OUTER JOIN userpermit U ON M.moduleid = U.moduleid
    WHERE U.userid = @userid至于CHECKBOX要在DATAGRID里绑定userpermit
      

  6.   

    select module.moduleid,module.module_name,userpermit.userid,userpermit.permit
    from module left join userpermit on module.moduleid=userpermit.moduleid
    where userpermit.userid=XXXX