管理者、つまりジョンは、サインアップして人事部門を選択すると人事部門にリンクされ、彼のデータはユーザーテーブルに保存され、このテーブルではdep id = 2(dep2)としてIDが設定されます。
次に、彼がログイン ID とパスワードを使用してログインしたときに、財務、コンピューター サイエンス、マーケティングなどの他のドキュメントではなく、HR ドキュメントにのみアクセスできるようにしたいので、このクエリを試しました。
まず、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 がログインすると、HR、マーケティング、財務、コンピューター サイエンスに関連するすべてのドキュメントが表示されます。