缩放器变量问题
本文关键字:问题 变量 缩放 | 更新日期: 2023-09-27 18:22:35
我想做的是获得一个订购系统的Review Page,从数据库中获取数据,并将标签的文本更改为数据库中的相应字段。显然,我必须拥有它,以便它只使用当前登录用户的用户名,而不是数据库中的第一个用户名(我使用的是asp.net成员数据库)。
这是后面页面的代码(我希望它在加载时显示):
protected void Page_Load(object sender, EventArgs e)
{
string username1 = User.Identity.Name;
CheckUser.InsertParameters.Add("@username", username1);
string readsql =
"SELECT title, gname, sname, dob, address, suburb, postcode, dayphone, email " +
"FROM users WHERE username = @username";
using (SqlConnection myConnection = new SqlConnection(strConnString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(readsql, myConnection);
SqlDataReader reader = myCommand.ExecuteReader();
myCommand.ExecuteNonQuery();
reader.Read();
Label2.Text = reader["title"].ToString();
Label3.Text = reader["gname"].ToString();
Label4.Text = reader["sname"].ToString();
Label5.Text = reader.GetDateTime(reader.GetOrdinal("dob")).ToString();
Label6.Text = reader["address"].ToString();
Label7.Text = reader["suburb"].ToString();
Label18.Text = reader["postcode"].ToString();
Label8.Text = reader["dayphone"].ToString();
Label9.Text = reader["email"].ToString();
reader.Close();
myConnection.Close();
}
这就是ASPX页面本身:
<asp:SqlDataSource ID="CheckUser" runat="server" ConnectionString="<%$ConnectionStrings: Database %>"
SelectCommand ="SELECT title, gname, sname, dob, address, suburb, postcode, dayphone, email FROM users WHERE username = @username" ProviderName="<%$ ConnectionStrings:Database.ProviderName %>"></asp:SqlDataSource>
我已经尝试了很多这种变体,但似乎都不起作用。继续获取@username的Scaler变量错误。
有什么问题吗?
尝试使用传递参数
myCommand.Parameters.Add("@username").Value = username1;
试试这个。。添加您的用户名1值
SqlCommand myCommand = new SqlCommand(readsql, myConnection);
myCommand.Parameters.AddWithValue("@username", username1);
// myCommand.ExecuteNonQuery(); ------> remover this
protected void Page_Load(object sender, EventArgs e)
{
string username1 = User.Identity.Name;
string readsql = "SELECT title, gname, sname, dob, address, suburb, postcode, dayphone, email FROM users WHERE username = @username";
using (SqlConnection myConnection = new SqlConnection(strConnString))
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand(readsql, myConnection);
myCommand.Parameters.AddWithValue("@username", username1);
SqlDataReader reader = myCommand.ExecuteReader();
if(reader.Read())
{
Label2.Text = reader["title"].ToString();
Label3.Text = reader["gname"].ToString();
Label4.Text = reader["sname"].ToString();
Label5.Text = reader.GetDateTime(reader.GetOrdinal("dob")).ToString();
Label6.Text = reader["address"].ToString();
Label7.Text = reader["suburb"].ToString();
Label18.Text = reader["postcode"].ToString();
Label8.Text = reader["dayphone"].ToString();
Label9.Text = reader["email"].ToString();
}
reader.Close();
myConnection.Close();
}