缩放器变量问题

本文关键字:问题 变量 缩放 | 更新日期: 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();
        }