非常奇怪的问题.从来没遇到过...SESSION错乱
登陆以后保存Session[ "Userid "] = sdr[ "Userid "].ToString().Trim();
每个会员发布的信息,都用这个Session[ "Userid "]来标识
其中Session[ "Userid "]为用户的ID,数字型
然后就是发布信息的时候:
public static string Userid= " ";
在ISPOSTBACK里
if(Session[ "Userid "] == null || Session[ "Userid "].ToString().Trim() == String.Empty)
{
Response.Redirect( "Login.aspx ");
Response.End();
}
Userid = Session[ "Userid "].ToString().Trim();
然后就是提交向数据库中插入数据
结果用A和B两个不同的帐号登陆发布信息
会出现下面的错误
A发布的信息会跑到B的信息列表里去
B发布的信息也会跑到A的信息列表里去
在读取会员发布信息的时候,也是用Session[ "Userid "]来对应数据库中的会员标识来的...
怎么会这样呢?
------解决方案--------------------具体在insert语句里面调试下看看是否A,B取到的
Session[ "Userid "] = sdr[ "Userid "].ToString().Trim();这个值是不是有问题!
------解决方案--------------------public static string Userid= " ";
两个同时登录时会出现问题
------解决方案--------------------中断看看是你Userid = Session[ "Userid "].ToString().Trim();这句就取到错误的数据还是什么。
这个一般不会出现错乱,你打开你的数据库看看数据库里的数据有没有问题,如果没问题就应该是读取数据的时候写错了SQL语句。
估计你是在显示发布信息的时候读取数据库的SQL语句有问题
------解决方案--------------------A发布的信息会跑到B的信息列表里去
B发布的信息也会跑到A的信息列表里去
-----------------------------------------什么意思?
你的存储过程都是一样插入一个表而已啊。
insert into UserProList(Uid,Classid,ProBid,ProSid,ProBH,ProName,ProPP,ProXH,ProJG,ProDW,ProQDL,ProPic,ProMsg,ProTime)
values(@Userid,@Classid,@ProBid,@ProSid,@ProBH,@ProName,@ProPP,@ProXH,@ProJG,@ProDW,@ProQDL,@FileName,@ProMsg,@ProTime)
-----------------------这样字有什么错乱呢?
一般都不会什么错乱的呢!
------解决方案--------------------你先插入1条新的记录,然后直接打开的你数据库看看插入的Uid对不对
------解决方案--------------------你那个USERID不定义静态也较好点。。
------解决方案--------------------public string Userid= " ";
不要定义为静态看看
------解决方案--------------------你在登陆页面Session.Clear();
------解决方案--------------------应该是推出的时候没有清空session!
------解决方案--------------------你插入的都是空的Session[ "Userid "]= " ";静态的问题
------解决方案--------------------跟踪一下session,一般不会出理这种问题的
可能是你自己代码逻辑问题
------解决方案--------------------不要定义成STATIC