按下按钮刷新会话状态

时间:2016-11-25 14:02:40

标签: c# php asp.net session

我有一个按钮,当按下该按钮时,会根据列表框选项查找值,如果它在表中找到记录,它会从列表框中获取该值并将其放入会话中,刷新页面然后会话用作数据源,即。找到session = session的位置。 现在发生的事情是,如果我想连续两次搜索,按钮不会存储新会话,而是需要旧会话。因此,如果我先搜索x,然后搜索y,则会在刷新页面时添加x。

 protected void search(object sender, EventArgs e)
    {
        con.Open();
        cmd.Connection = con;
        cmd.CommandText = "SELECT * FROM Driver WHERE City = '" + JourOrigin.SelectedItem + "' ";//retrieves driver names from table
        dr = cmd.ExecuteReader();
        dr.Read();
        if(Session["city"] != null)

        {
            Session["city"] = null;
            JourOrigin.SelectedValue = null;

        }
        else
        {
            if(dr.HasRows)
            {

            Session["city"] = JourOrigin.SelectedItem.ToString();
            Response.Redirect("~/Account/FindDriver.aspx");
            NoCity.Visible = false;
            }
            else
            {
                DriversJourney.Items.Clear();
                DriversJourney.Items.Add("No Drivers in selected city, try another city");
                NoCity.Visible = true;
                NoCity.Text = "No drivers in selected city, please try another city";
            }

        }
        con.Close();
    }

如果已经有会话,我设法清除会话,但我必须按两次值才能存储它。每次按下按钮都可以“刷新”一个会话吗?

1 个答案:

答案 0 :(得分:0)

您必须尝试以下代码:

protected void search(object sender, EventArgs e)
{
    con.Open();
    cmd.Connection = con;
    cmd.CommandText = "SELECT * FROM Driver WHERE City = '" + JourOrigin.SelectedItem + "' ";//retrieves driver names from table
    dr = cmd.ExecuteReader();
    dr.Read();

    if(Session["city"] != null)
    {
        Session["city"] = null;
    }

    if(dr.HasRows)
    {
        Session["city"] = JourOrigin.SelectedItem.ToString();
        Response.Redirect("~/Account/FindDriver.aspx");
        NoCity.Visible = false;
    }
    else
    {
        DriversJourney.Items.Clear();
        DriversJourney.Items.Add("No Drivers in selected city, try another city");
        NoCity.Visible = true;
        NoCity.Text = "No drivers in selected city, please try another city";
    }

    con.Close();
}