关于Session一个的小问题,请各位指点一下

nsi20141 2003-05-28 09:58:29
我想要用户登陆后,跳转到更新界面,可以更新他注册的信息,为了判断用户的身份所以在where 后加上了NickName=Session["UserName"]";
下面是更新数据库的语句,可是加上NickName=Session["UserName"]";就有问题
是不是NickName=Session["UserName"]";这个语句写的不对 我是个初学者,请各位指教。
String strSQL="update Threads set Subject=@Subject,Name=@Name,Address=@Address,HomePage=@HomePage,SendTime=@SendTime,"+
"Tel=@Tel,IsGood='0',Body=@Body where ThdID=@ThdID and NickName=Session["UserName"]";

下面是登陆的代码:
protected void LoginBtn_Click(object sender, EventArgs e)
{
if (Page.IsValid) {
// 从Web.config文件中读取连接字符串
String strConn=ConfigurationSettings.AppSettings["search"];
// 连接到search数据库
SqlConnection cn=new SqlConnection(strConn);
// 打开连接
cn.Open();
// 构造SQL语句,该语句在qy_RegUsers表中检查用户名和密码是否正确
String strSQL="select * from qy_RegUsers where NickName='"+
nickname.Text+"' and Password='"+pwd.Text+"'";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 执行ExecuteReader()方法
SqlDataReader dr=cm.ExecuteReader();
if (dr.Read()) {
Message.Text="";
// 保存当前用户的登录名称
Session["UserName"]=dr["NickName"];
// 进入注册信息更新界面
Response.Redirect("update_xinxi.aspx");
} else {
Message.Text="用户名/密码不对,请重新填写";
}
// 关闭连接
cn.Close();
}
}
...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoqd 2003-05-28
  • 打赏
  • 举报
回复
在asp.net中一定要注意每個變量都有明確的類型,不像asp那樣了
暗石绿 2003-05-28
  • 打赏
  • 举报
回复
NickName 是 string 型
Session["UserName"] 是 object 型
类型不一致,不能比较。
要比较,就要转换成相同的类型才行。
eattiger 2003-05-28
  • 打赏
  • 举报
回复
Session["UserName"]应为(string)Session["UserName"]

你可以在更新页面中,先把(string)Session["UserName"]中的值赋给一个变量,然后再写
SQL语句,试试看,如果有问题,请及时和我联系!
webdiyer 2003-05-28
  • 打赏
  • 举报
回复
String strSQL="update Threads set Subject=@Subject,Name=@Name,Address=@Address,HomePage=@HomePage,SendTime=@SendTime,Tel=@Tel,IsGood='0',Body=@Body where ThdID=@ThdID and NickName='"+(string)Session["UserName"]+"'";

--------------------------------
AspNetPager 免费分页控件4.1版发布,欢迎下载使用:http://www.webdiyer.com
nsi20141 2003-05-28
  • 打赏
  • 举报
回复
已经ok了
以上的三种写法都可行
谢谢各位!
pcuser 2003-05-28
  • 打赏
  • 举报
回复
Session["UserName"]是Session对象,必须转换成string才行
用Session["UserName"].ToString()就可以了
kinglht 2003-05-28
  • 打赏
  • 举报
回复
String strSQL="update Threads set Subject=@Subject,Name=@Name,Address=@Address,HomePage=@HomePage,SendTime=@SendTime,"+
"Tel=@Tel,IsGood='0',Body=@Body where ThdID=@ThdID and NickName="+(String)Session["UserName"];
killprograme 2003-05-28
  • 打赏
  • 举报
回复
Session["UserName"].ToString();就可以了

62,041

社区成员

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

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

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

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