当前位置: 代码迷 >> ASP.NET >> session里的数据相互影响解决方案
  详细解决方案

session里的数据相互影响解决方案

热度:6862   发布时间:2013-02-25 00:00:00.0
session里的数据相互影响
如:登陆页面login.aspx:
登陆成功 session["name"]="aa";
window.location='qq.aspx' 

商品显示页面qq.aspx,根据不同用户来显示用户相应的商品。
前台显示。
后台查询:select productname from product where username=session["name"];

在ie下,
先用用户aa登陆成功,显示的是aa对应的商品。
再用bb用户登录成功,显示的还是aa对应的商品,重新刷新一下页面才能变成bb的商品。

不知怎么会事。session这样用对不对啊


------解决方案--------------------------------------------------------
string str_sup_no = (string)Session["name"].ToString().Trim();//登陆用户ID
然后你在select productname from product where username=str_sup_no; 

------解决方案--------------------------------------------------------
应该在每次显示产品的语句后面把session["name"]的值清空啊!我是这样想的!
------解决方案--------------------------------------------------------
session["name"]="aa"; 

那么name永远就等于aa,因为你已经给name赋了aa的字符串值了。
应该是这样

C# code
string sql="select productname from product where username='"+TextBox1.Text+"'";SqlCommand Comm = new SqlCommand(sql, EConn);SqlDataReader dr = Comm.ExecuteReader();if(dr.Read()){ Session["Name"] = dr["username"].ToString();}dr.Close
------解决方案--------------------------------------------------------
既然刷新了一下就能显出bb的商品,那基本可以排除楼上几位的判断!这是本地缓存的问题,在IE设置中,“常规”--“internet临时文件”的“设置”--“每次访问此页时检查”选中即可!
------解决方案--------------------------------------------------------
请空IE缓存:
protected void Page_Load(object sender,EventArgs e)
{
Response.CacheControl="no-cache";
}
  相关解决方案