to  Lastcsdner(外行) 
谢谢你的回复,因为此类表非常多,级别限制也很多,所以用视图很不变。
希望能找到一个更灵活的方案

解决方案 »

  1.   

    把员工权限放到变量中,datagrid控件显示时依据员工权限动态的隐藏datagrid的列。你去的数据的记录还是不变的,不要动数据库结构啊 。顶多在你的sql语句上做文章。
      

  2.   

    建两个表:
    1、table_field
    ID、表名、字段名
    用于记录需要权限的每个表中的表名和字段名
    2、user_purview(员工权限表)
    ID、level(权限)、表名、字段名
    用于记录level所能显示每个表中(字段经过限制)的内容,并能通过level控制随意增减任何表中(字段经过限制)的内容。
    注:user(员工表)
    name     level(权限)
      

  3.   

    string strsql;
    if(A)
    {
    strsql="select inPrice,outPrice from table";
    }
    else
    {
    strsql="select outPrice from table";
    }
      

  4.   

    Oracle和Sql Server都是权限精确到列啊。
    可以直接按角色分配吧,无需更改应用程序层的。