我有一个固定资产表product,字段分别为ID、Name(资产名称)、Class(资产类别)、Type(规格型号)、Depart(部门)、Date(使用日期)、Beiz(备注)
类别表Class,字段分别为ID、ClassId(类别序号)、ClassName(类别名称)、ClassPre(上一个序号)、ClassTj(序号深度)、ClassOrder(顺序)
问题:现在我想控制每个操作员的权限,管理员可以访问所有类别下的资产,而一般人员则只能访问某个类别或某几个类别下的资产,由管理员授权。请问控制权限的这段代码如何写?
获取所有资产类别下的代码为:
string strSql = "Select A.*,C.ClassName From Product A, Class C Where A. Class=C.Id "; GridView1.DataKeyNames = new string[] { "ID" };
sqloperate.gvDataBind(GridView1, strSql);获取其他类别下的资产信息代码该如何写?难道要一个个判断class类别? string strSql = "Select A.*,C.ClassName From Product A, Class C Where A. Class=C.Id and A.class=?";请问这句代码该如何改?请大家帮帮我吧,这个问题,我想了好久了,没有头绪。谢谢了!!
类别表Class,字段分别为ID、ClassId(类别序号)、ClassName(类别名称)、ClassPre(上一个序号)、ClassTj(序号深度)、ClassOrder(顺序)
问题:现在我想控制每个操作员的权限,管理员可以访问所有类别下的资产,而一般人员则只能访问某个类别或某几个类别下的资产,由管理员授权。请问控制权限的这段代码如何写?
获取所有资产类别下的代码为:
string strSql = "Select A.*,C.ClassName From Product A, Class C Where A. Class=C.Id "; GridView1.DataKeyNames = new string[] { "ID" };
sqloperate.gvDataBind(GridView1, strSql);获取其他类别下的资产信息代码该如何写?难道要一个个判断class类别? string strSql = "Select A.*,C.ClassName From Product A, Class C Where A. Class=C.Id and A.class=?";请问这句代码该如何改?请大家帮帮我吧,这个问题,我想了好久了,没有头绪。谢谢了!!
解决方案 »
- 关于从word导入图片到数据库的问题。。。。
- 在网页上实现活动窗口并可鼠标操作
- 新人100分求 DataList里面的一个问题
- Visual Studio 2005 Web Application Projects支持中文版的发布了吗????
- 用户控件里的 Button 事件 没有响应
- 服务器应用程序不可用
- 倾所有积分,拜求一简单但小弟没有解决的问题!
- 已知两个DateTime的值datetime1,datetime2,怎么得到一个用秒计的差值?
- Scott Mitchell的ASP.NET2.0教程中文版 已到出到61篇
- 怎样实现datagrid的一列元素有不同的超链接?
- 当textbox中不输入任何信息时 存储过程中参数如何接收textbox的值
- 求一个简单的放在asp.net代码里面的文本编辑器
那么,新建一个表assignment(id, user, class),表示user拥有对class的访问权限管理员授权某个用户可以访问某个类别,就是加一条记录查询的时候可以
Select A.*,C.ClassName
From Product A, Class C, assignment T
where A. Class=C.Id and c.id in (Select class from assignment where assignment.it=:id)
接收一个参数:user
还是不太清楚 where assignment.user=:user 这句? :user 这个是什么意思啊?用户登陆时,要用session存放哪些记录?
首先,你肯定要在某个地方保存当前登录用户的id
然后,当用户对资产进行查询的时,从assignment里面可以查到当前用户有权访问的类别……
那就是说你的查询需要一个参数来表明当前用户,即where assignment.user=:user
:user表示当前用户,是一个参数占位符。