非常奇怪的问题.从来没遇到过...SESSION错乱

weiqiaoxyz 2007-09-22 11:17:05
登陆以后保存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"]来对应数据库中的会员标识来的...

怎么会这样呢?
...全文
188 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun0201 2007-09-22
  • 打赏
  • 举报
回复
你插入的都是空的Session["Userid"]="";静态的问题
懒牛科技 2007-09-22
  • 打赏
  • 举报
回复
应该是推出的时候没有清空session!
wuhan_dotnet 2007-09-22
  • 打赏
  • 举报
回复
你在登陆页面Session.Clear();
lbaeolus 2007-09-22
  • 打赏
  • 举报
回复
public string Userid="";
不要定义为静态看看
yangpeiyu 2007-09-22
  • 打赏
  • 举报
回复
你那个USERID不定义静态也较好点。。
BearRui 2007-09-22
  • 打赏
  • 举报
回复
你先插入1条新的记录,然后直接打开的你数据库看看插入的Uid对不对
yangpeiyu 2007-09-22
  • 打赏
  • 举报
回复
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)
-----------------------这样字有什么错乱呢?

一般都不会什么错乱的呢!
weiqiaoxyz 2007-09-22
  • 打赏
  • 举报
回复
值可以正常取到..

========================提交
SqlCommand cmd=new SqlCommand("ProAdd",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Userid",Userid));
cmd.Parameters.Add(new SqlParameter("@Classid",Classid));
cmd.Parameters.Add(new SqlParameter("@ProBid",ProBid));
cmd.Parameters.Add(new SqlParameter("@ProSid",ProSid));
cmd.Parameters.Add(new SqlParameter("@ProBH",ProBH));
cmd.Parameters.Add(new SqlParameter("@ProName",ProName));
cmd.Parameters.Add(new SqlParameter("@ProPP",ProPP));
cmd.Parameters.Add(new SqlParameter("@ProXH",ProXH));
cmd.Parameters.Add(new SqlParameter("@ProJG",ProJG));
cmd.Parameters.Add(new SqlParameter("@ProDW",ProDW));
cmd.Parameters.Add(new SqlParameter("@ProQDL",ProQDL));
cmd.Parameters.Add(new SqlParameter("@FileName",FileName));
cmd.Parameters.Add(new SqlParameter("@ProMsg",ProMsg));
cmd.Parameters.Add(new SqlParameter("@ProTime",ProTime));
cmd.ExecuteNonQuery();
conn.Close();


=================================存储过程
CREATE PROCEDURE ProAdd
(
@Userid int,
@Classid int,
@ProBid int,
@ProSid int,
@ProBH varchar(50),
@ProName varchar(50),
@ProPP varchar(50),
@ProXH varchar(50),
@ProJG varchar(50),
@ProDW varchar(50),
@ProQDL varchar(50),
@FileName varchar(50),
@ProMsg text,
@ProTime varchar(50)
)
AS

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)
GO

就这样...怎么会出现这样奇怪的问题呢??
BearRui 2007-09-22
  • 打赏
  • 举报
回复
中断看看是你Userid = Session["Userid"].ToString().Trim();这句就取到错误的数据还是什么。

这个一般不会出现错乱,你打开你的数据库看看数据库里的数据有没有问题,如果没问题就应该是读取数据的时候写错了SQL语句。


估计你是在显示发布信息的时候读取数据库的SQL语句有问题
ojekleen 2007-09-22
  • 打赏
  • 举报
回复
public static string Userid="";
两个同时登录时会出现问题
vsstudio05 2007-09-22
  • 打赏
  • 举报
回复
具体在insert语句里面调试下看看是否A,B取到的
Session["Userid"] = sdr["Userid"].ToString().Trim();这个值是不是有问题!
guyehanxinlei 2007-09-22
  • 打赏
  • 举报
回复
不要定义成STATIC
anncesky 2007-09-22
  • 打赏
  • 举报
回复
跟踪一下session,一般不会出理这种问题的
可能是你自己代码逻辑问题

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧