日期:2014-05-18  浏览次数:20429 次

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";
}