ASP.NET C#登录时显示地址详细信息

ASP.NET C#登录时显示地址详细信息,c#,asp.net,C#,Asp.net,在我的网站上,我试图让我的网站显示用户的地址详细信息,如果他们已登录并尝试了存储过程: ALTER PROCEDURE dbo.showAddress @userid nvarchar(256) AS SELECT Fullname, Address, County, Postcode FROM Addresses WHERE @userid = UserId RETURN 但是我得到了一个关于期望用户id的区域?我已尝试插入以下代码: protected void Page_

在我的网站上,我试图让我的网站显示用户的地址详细信息,如果他们已登录并尝试了存储过程:

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连接;地址;全名”

任何帮助或建议都将不胜感激

在C#中,需要添加@userid作为参数传递到存储过程

oCMD.Parameters.Add(new SqlParameter("@userid", userid));
显然,您需要从某个地方获取userID,例如User.Identity对象。

在C#中,您需要添加@userID作为参数传递给存储过程

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

显然,您需要从某个地方获取userID,例如User.Identity对象。

在我看来,您没有将useid参数传递给存储过程

oCMD.Parameters.Add(new SqlParameter("@userId", User.UserId));//plz check the User object to find the id

在我看来,您没有将useid参数传递给存储过程

oCMD.Parameters.Add(new SqlParameter("@userId", User.UserId));//plz check the User object to find the id

嘿,我已经在代码中添加了这一行:“oCMD.Parameters.Add(“@userid”,SqlDbType.NVarChar,256)。Value=User.Identity.Name;”但当我试着运行这个程序时,当我带着这个代码进入我的页面时,我在没有数据存在的情况下无效地尝试读取。?太糊涂了!!我发现我的代码实际上是有效的!但是问题似乎是,当用户使用CreateUserWizard为我的站点注册时,这会加密用户名和密码,因此当我的程序在数据库中查找用户名时,它会发现加密的文本,而这显然不匹配!所以我要么解密代码,要么永远不加密,因为它进入数据库表!嗯……嘿,我已经在代码中添加了这一行:'oCMD.Parameters.Add(“@userid”,SqlDbType.NVarChar,256)。Value=User.Identity.Name;'但当我试着运行这个程序时,当我带着这个代码进入我的页面时,我在没有数据存在的情况下无效地尝试读取。?太糊涂了!!我发现我的代码实际上是有效的!但是问题似乎是,当用户使用CreateUserWizard为我的站点注册时,这会加密用户名和密码,因此当我的程序在数据库中查找用户名时,它会发现加密的文本,而这显然不匹配!所以我要么解密代码,要么永远不加密,因为它进入数据库表!六羟甲基三聚氰胺六甲醚。。。