1

私のウェブサイトでは、ログインしている場合にユーザーのアドレスの詳細をサイトに表示させようとしています。ストアドプロシージャを試しました:

ALTER PROCEDURE dbo.showAddress
    @userid nvarchar(256)
AS
    SELECT Fullname, Address, County, Postcode FROM Addresses WHERE @userid = UserId
RETURN

しかし、私はユーザーIDを期待することについての領域を得ますか? コードビハインドを介して挿入しようとしました:

protected void Page_Load(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated)
    {
        SqlCommand oCMD = new SqlCommand();
        SqlConnection oCON = new SqlConnection();
        oCON.ConnectionString = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
        oCON.Open();
        oCMD.Connection = oCON;
        oCMD.CommandType = CommandType.StoredProcedure;
        oCMD.CommandText = "showAddress";

        SqlDataReader oRDR = oCMD.ExecuteReader();
        oRDR.Read();
        txtName.Text = oRDR.GetString(oRDR.GetOrdinal("Fullname"));
        oCON.Close();
    }
}

しかし、これは私にとってもうまくいきません。次のように入力できるコードはありますか。

txtPostcode.Text = "SQL 接続; アドレス; フルネーム";

ヘルプやアドバイスをいただければ幸いです....

4

2 に答える 2

2

ストアド プロシージャに useid パラメータを渡していないようです。

oCMD.Parameters.Add(new SqlParameter("@userId", User.UserId));//plz check the User object to find the id
于 2012-12-19T22:41:57.000 に答える
2

C# では、ストアド プロシージャに渡すパラメーターとして @userid を追加する必要があります。

oCMD.Parameters.Add(new SqlParameter("@userid", userid));

明らかに、User.Identity オブジェクトなどのどこかからユーザー ID を取得する必要があります。

于 2012-12-19T22:39:02.323 に答える