首页 > 解决方案 > 什么可能是我的会话本身不断变化的原因?

问题描述

我有一个新闻网站,每个新闻在我的数据库表中都有一个 ID,我随机选择 4 个 ID 将它们的标题放在“查看更多”部分。我通过生成随机行号来选择 ID,问题是当我单击其中一个建议的新闻,它会随机将我带到另一个新闻!这对我来说毫无意义。奇怪的是我被带到的另一个随机 ID 确实存在,但不是我点击的那个。
Latelty 我注意到了这一点:例如,在“查看更多”部分,我们有 title1 - title2 - title3 - title4 ,所以我点击了 title1 ,它把我带到了另一个我没有点击的随机新闻.. 现在是 4 个标题“查看更多”部分不同,这是正常的.. 现在当我点击 title2 时,它将带我进入 title1 中的当前新闻!依此类推,下次当我单击 title1 时,它会将我带到 title2 中的当前新闻。看不懂关系

在将其中一个变量放入会话之前,我尝试将随机数存储在另一个变量(key1,key2..)中,但这仍然是同样的问题。我也试过不刷新页面(我的意思是只取决于回帖)。我尝试清除季节也尝试在存储新闻 ID 之前将它们全部删除。没有错误消息。

int myrandom1;
int myrandom2;
int myrandom3;
int myrandom4;
string key1;
string key2;
string key3;
string key4;
DataSet ds = new DataSet();

protected void Page_Load(object sender, EventArgs e)
{
    string key=" ";

        key = Session["key"].ToString();


    SqlConnection con = new SqlConnection("Data Source=.; initial catalog=celeblogy; integrated security=true");
    SqlCommand cmd = new SqlCommand("select * from news where id like '" + key + "'", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds, "new");

    string Titre = ds.Tables["new"].Rows[0][1].ToString();
    Titre = Titre.Replace("*", "'");
    titre.InnerText = Titre;

    string blog = Decode(ds.Tables["new"].Rows[0][2].ToString());

    string[] Blogs;
            blog = blog.Replace("*", "'");
    Blogs = blog.Split('#');


    Literal1.Text = Blogs[0];
    Image1.Attributes["src"] = "pictures/" + key + "1.jpg";

    if (Blogs.Length >= 2)
    {
        Literal2.Text = Blogs[1];
        Image2.Attributes["src"] = "pictures/" + key + "2.jpg";
    }




    cmd = new SqlCommand("select * from news", con);
    da = new SqlDataAdapter(cmd);
    da.Fill(ds, "news");

    Random rnd = new Random();


    myrandom1 =rnd.Next(ds.Tables["news"].Rows.Count-1);
    Image3.ImageUrl = "pictures/" + ds.Tables["news"].Rows[myrandom1][0].ToString()+"1.jpg";
    Label1.Text =ds.Tables["news"].Rows[myrandom1][1].ToString().Replace("*","'");
    key1 = ds.Tables["news"].Rows[myrandom1][0].ToString();


    myrandom2 = rnd.Next(ds.Tables["news"].Rows.Count - 1);
    Image4.ImageUrl = "pictures/" + ds.Tables["news"].Rows[myrandom2][0].ToString() + "1.jpg";
    Label2.Text = ds.Tables["news"].Rows[myrandom2][1].ToString().Replace("*", "'");
    key2 = ds.Tables["news"].Rows[myrandom2][0].ToString();

    myrandom3 = rnd.Next(ds.Tables["news"].Rows.Count - 1);
    Image5.ImageUrl = "pictures/" + ds.Tables["news"].Rows[myrandom3][0].ToString() + "1.jpg";
    Label3.Text = ds.Tables["news"].Rows[myrandom3][1].ToString().Replace("*", "'");
    key3 = ds.Tables["news"].Rows[myrandom3][0].ToString();


    myrandom4 = rnd.Next(ds.Tables["news"].Rows.Count - 1);
    Image6.ImageUrl = "pictures/" + ds.Tables["news"].Rows[myrandom4][0].ToString() + "1.jpg";
    Label4.Text = ds.Tables["news"].Rows[myrandom4][1].ToString().Replace("*", "'");
    key4 = ds.Tables["news"].Rows[myrandom4][0].ToString();


}




protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Session["key"] =key1;
        Response.Redirect(Request.RawUrl);
    }

protected void LinkButton2_Click(object sender, EventArgs e)
{
    Session["key"] = key2;
    Response.Redirect(Request.RawUrl);
}

protected void LinkButton3_Click(object sender, EventArgs e)
{
    Session["key"] = key3;
    Response.Redirect(Request.RawUrl);

}

protected void LinkButton4_Click(object sender, EventArgs e)
{
    Session["key"] = key4;
    Response.Redirect(Request.RawUrl);
}

查看更多部分的图片

标签: asp.net

解决方案


推荐阅读