在我的网站上,我试图让我的网站显示用户地址详细信息(如果他们已登录并尝试了存储过程):
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));
显然,您需要从某个地方获取用户 ID,例如 User.Identity 对象。
关于c# - ASP.NET C# 在登录时显示地址详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13962370/