asp.net - 什么可能是我的会话本身不断变化的原因?
问题描述
我有一个新闻网站,每个新闻在我的数据库表中都有一个 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);
}
解决方案
推荐阅读
- java - 将 HTTPRequest 参数传递给另一个请求
- date - x 轴上带有日期的双向图
- javascript - 我使用一次后所有按钮都失去功能
- java - 扫描文件并将它们分配给对象数组时出现“不匹配错误”
- c++ - 从 bash 脚本(C++ 程序)将字符串推入 cin
- spring-data-jpa - 将 `@Transactional` 与 Spring 的 `@Retriable` 一起使用
- firebase - ionis 3中的Cordova插件firebase突然错误
- c# - 试图用箭头键移动 1 个对象,用 wasd 移动另一个对象
- node.js - TypeError:无法读取未定义的属性“DASH”
- java - 如何在 Spring-Mvc 中缓存具有两个参数的方法