0

私は、ログインしているユーザーのユーザー名を見つけ、ユーザー名 = アクティブなユーザーである従業員テーブルに対してクエリを実行し、EmployeeID、TeamID、および PositionID を返してセッション状態変数を設定し、別のものを作成する必要があるアプリケーションに取り組んでいますビューは各ユーザーに基づいています。

必要なパラメーターを出力するために、このストアド プロシージャを作成しました。

CREATE PROCEDURE ASP_UserSession @Username nvarchar(256), @UserID int OUTPUT, @TeamID int OUTPUT, @PositionID int OUTPUT

AS

SELECT @UserID = ID, @TeamID = TeamID, @PositionID = PositionID
FROM Employee
WHERE UserName = @Username

今私が抱えている問題は、セッション状態でパラメーターを設定するために、出力されたパラメーターをコード ビハインド ファイルに保存することです。

髪を全部抜く準備が整いました!助けてください!

4

2 に答える 2

0

DbParameterクラスにはDirection、値を設定できるプロパティがあります。ParameterDirection.Output

ストアド プロシージャの実行後、コマンド オブジェクトのパラメーター コレクションからパラメーター オブジェクトを取得し、その値を取得します。

于 2013-03-29T17:07:38.373 に答える
0

このコードで問題を解決できました:

MembershipUser user = Membership.GetUser();
    string activeuser = user.UserName;

    using (System.Data.SqlClient.SqlConnection sc1 =
             new System.Data.SqlClient.SqlConnection(@"Data Source=DRIFT\GANDALF;Initial Catalog=Wizard_Swears;" +
                 "Integrated Security=True"))
    {
        sc1.Open();
        using (System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand())
        {
            command1.CommandType = CommandType.Text;
            command1.Connection = sc1;

            // DIRECTION :: Input
            command1.CommandText = "select @UserID = [ID], @TeamID = [TeamID], @PositionID = [PositionID] FROM [Employee] WHERE ([UserName] = @UserName)";
            System.Data.SqlClient.SqlParameter paramter1 = command1.Parameters.Add("@UserName", activeuser);
            System.Data.SqlClient.SqlParameter paramter2 = command1.Parameters.Add("@UserID", SqlDbType.SmallInt);
            System.Data.SqlClient.SqlParameter paramter3 = command1.Parameters.Add("@TeamID", SqlDbType.SmallInt);
            System.Data.SqlClient.SqlParameter paramter4 = command1.Parameters.Add("@PositionID", SqlDbType.SmallInt);
            paramter1.Direction = ParameterDirection.Input;
            paramter2.Direction = ParameterDirection.Output;
            paramter3.Direction = ParameterDirection.Output;
            paramter4.Direction = ParameterDirection.Output;
            command1.ExecuteNonQuery();

            //Store values to variables to be set to session
            string userID = paramter2.Value.ToString();
            string teamID = paramter3.Value.ToString();
            string positionID = paramter4.Value.ToString();

            UserIDLBL.Text = userID;
            TeamIDLBL.Text = teamID;
            PositionIDLBL.Text = positionID;


            Session["Username"] = activeuser;
            Session["UserID"] = UserIDLBL.Text;
            Session["AMID"] = TeamIDLBL.Text;
            Session["PositionID"] = PositionIDLBL.Text;
于 2013-04-01T22:56:41.847 に答える