C# 管理员通过部门查看文档

C# 管理员通过部门查看文档,c#,mysql,asp.net,sql,stored-procedures,C#,Mysql,Asp.net,Sql,Stored Procedures,管理员,即John在注册时链接到人力资源部门,然后选择人力资源部门,他的数据存储在userss表中,该表中的id设置为dep id=2,即dep2 然后我想当他通过他的登录id和密码登录时,他只能访问人力资源文档,而不能访问其他文档,如财务、计算机科学、市场营销,我已经尝试过这个查询 首先,我选择dep id: ALTER procedure [dbo].[sphrdoc] @UserName nvarchar(50), @Password nvarchar(50) as select Dep

管理员,即John在注册时链接到人力资源部门,然后选择人力资源部门,他的数据存储在userss表中,该表中的id设置为dep id=2,即dep2

然后我想当他通过他的登录id和密码登录时,他只能访问人力资源文档,而不能访问其他文档,如财务、计算机科学、市场营销,我已经尝试过这个查询

首先,我选择dep id:

ALTER procedure [dbo].[sphrdoc]
@UserName  nvarchar(50),
@Password nvarchar(50)
as
select DepID from Userss where UserName=@UserName AND [Password]=@Password
然后我创建一个函数:

publicint  hrdoc(string Username,string password)
    {
        return Convert.ToInt32( db.ExecuteScalar("sphrdoc",newobject[]  
       {Username,password}));

    }
然后在页面加载中:

Session["a"] = dd.hrdoc(Convert.ToString(Session["Login2"]),   
(Convert.ToString(Session["Login3"])));
然后我设置这个查询:

ALTER procedure [dbo].[sphrdocid1]
 @DepID int
as
 SELECT DocumentInfo.DocID,
 dbo.DocumentInfo.DocName,
dbo.DocumentInfo.Uploadfile,
dbo.DocType.DocType,
 dbo.Department.DepType ,
dbo.ApproveType.ApproveType AS ApproveID
FROM dbo.DocumentInfo
left JOIN dbo.DocType ON dbo.DocumentInfo.DocTypeID=dbo.DocType.DocTypeID
left JOIN dbo.Department ON dbo.DocumentInfo.DepID=dbo.Department.DepID
LEFT JOIN dbo.ApproveType ON dbo.ApproveType.approveid=dbo.Department.DepID where   
dbo.Department.DepID=@DepID


public DataTable hrdoc1(int id)
    {           
        DataTable table = db.ExecuteDataSet("sphrdocid1", new object[] { id 
       }).Tables[0];
        return table;

    }
然后在页面加载中,我称之为:

GrdFileApprove.DataSource = dd.hrdoc1(Convert.ToInt32(Session["a"]));
          GrdFileApprove.DataBind();

但当John登录时,他仍然可以看到所有与人力资源、市场营销、财务、计算机科学相关的文档。

您的查询看起来是正确的。您需要检查数据以确保所有值都正确填充

这是您实际使用的代码吗?您需要部门表上的左联接吗

exec sphrdocid1 @DepID = 1

go
ALTER procedure [dbo].[sphrdocid1]
 @DepID int
as
begin
SELECT DocumentInfo.DocID, dbo.DocumentInfo.DocName, dbo.DocumentInfo.Uploadfile, dbo.DocType.DocType, dbo.Department.DepType , dbo.ApproveType.ApproveType AS ApproveID
FROM dbo.DocumentInfo
JOIN dbo.Department
    ON dbo.DocumentInfo.DepID=dbo.Department.DepID
left JOIN dbo.DocType 
    ON dbo.DocumentInfo.DocTypeID=dbo.DocType.DocTypeID
LEFT JOIN dbo.ApproveType 
    ON dbo.ApproveType.approveid=dbo.Department.DepID 
where  dbo.DocumentInfo.DepID=@DepID
end

是否要保持对用户(管理员)的访问限制?所以,他只能访问与人力资源相关的表格?是的。。。他只能访问存储在审批表而不是表中的与人力资源相关的数据…遵循此链接,我希望它可以解决您的问题:可能是您的数据。你检查过你的数据了吗?表中有多少个不同的部门ID?