C# 用session传值,提示错误:未将对象引用设置到对象的实例。为什么?

gsli 2009-03-03 09:53:22
在一个页面中这样给Session["Temp_ID"]赋值:
Session["Temp_ID"] = ASPxGridView1.GetRowValues(index, new String[] { "Choose_ID" }).ToString();

在另一个页面中想取到Session["Temp_ID"]的这个值:
string zx = "update [Exam_ChooseQues] set [content] ='" + Address1 + "' where [Choose_ID] = " + Session["Temp_ID"].ToString();

运行后提示错误:未将对象引用设置到对象的实例。什么原因,请指教!谢谢
...全文
617 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujinjian2008n 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hhxxcj 的回复:]
你先判断一下就好了
if(Session["Temp_ID"] != null)
就行了
[/Quote]


Session 很容易丢失数据的
hecong875 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 gsli 的帖子:]
在一个页面中这样给Session["Temp_ID"]赋值:
Session["Temp_ID"] = ASPxGridView1.GetRowValues(index, new String[] { "Choose_ID" }).ToString();

在另一个页面中想取到Session["Temp_ID"]的这个值:
string zx = "update [Exam_ChooseQues] set [content] ='" + Address1 + "' where [Choose_ID] = " + Session["Temp_ID"].ToString();

运行后提示错误:未将对象引用设置到对象的实例。什么原因,请指教!谢谢
[/Quote]

自己先跟一下! ASPxGridView1.GetRowValues(index, new String[] { "Choose_ID" }).ToString(); 是否有值
然后在检查下Address1 这个变量是否有值
肯定就是你着两个变量有一个为NULL了所以抱错,多数应该是session的问题
gsli 2009-03-03
  • 打赏
  • 举报
回复
用14楼的代码,也不行,提示:未将对象引用设置到对象的实例。
wangzhenyue 2009-03-03
  • 打赏
  • 举报
回复
你可以设断点看一下
wangzhenyue 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xfreyes 的回复:]
晕,Tostring() 有括号的,
在使用SESSION的地方之前判断
if(Session["Temp_ID"] != null)
{
string t = Session["Temp_ID"].ToString() ;

}
else
{
//给你写的代码放里面
}

[/Quote]

你得加上这句话。。
scy251147 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 gsli 的帖子:]
在一个页面中这样给Session["Temp_ID"]赋值:
Session["Temp_ID"] = ASPxGridView1.GetRowValues(index, new String[] { "Choose_ID" }).ToString();

在另一个页面中想取到Session["Temp_ID"]的这个值:
string zx = "update [Exam_ChooseQues] set [content] ='" + Address1 + "' where [Choose_ID] = " + Session["Temp_ID"].ToString();

运行后提示错误:未将对象引用设置到对象的实例。什么原因,请指教!谢谢
[/Quote]

string zx = "update [Exam_ChooseQues] set [content] ='" + Address1 + "' where [Choose_ID] = " + Session["Temp_ID"].ToString();

有问题,应该是
string zx = "update [Exam_ChooseQues] set [content] ='" + Address1 + "' where [Choose_ID] = '" + Session["Temp_ID"].ToString()+"'";
gsli 2009-03-03
  • 打赏
  • 举报
回复
我第一个页面经过测试给SESSION赋值了,可是在第二个页面用就提示:未将对象引用设置到对象的实例
xfreyes 2009-03-03
  • 打赏
  • 举报
回复
晕,Tostring() 有括号的,
在使用SESSION的地方之前判断
if(Session["Temp_ID"] != null)
{
string t = Session["Temp_ID"].ToString() ;

}
gsli 2009-03-03
  • 打赏
  • 举报
回复
测试成功,第一个页面是给session赋值了。
贫僧又回来了 2009-03-03
  • 打赏
  • 举报
回复
Session["Temp_ID"].ToString()
gsli 2009-03-03
  • 打赏
  • 举报
回复
在哪判断SESSION是否为空?
gsli 2009-03-03
  • 打赏
  • 举报
回复
我这样测试第一个页面是否给session赋值了,string t = Session["Temp_ID"].ToString ;

可是提示错误:无法将方法组“ToString”转换为非委托类型“string”。您是要调用方法吗?
ximi82878 2009-03-03
  • 打赏
  • 举报
回复
LZ看下在取值之前是否在其他页面赋值过。最简单的方法就是判断这个SESSION是否为空。。。。if(Session["Temp_ID"] != null)
SealedLove 2009-03-03
  • 打赏
  • 举报
回复
首先 检查你客户端是不是禁用cookies
其次 调试下 第一个页面是否给session赋值了
hhxxcj 2009-03-03
  • 打赏
  • 举报
回复
你先判断一下就好了
if(Session["Temp_ID"] != null)
就行了
genius_tong 2009-03-03
  • 打赏
  • 举报
回复
“一个页面,另一个页面”的关系??

不是很懂,猜测~~
zgke 2009-03-03
  • 打赏
  • 举报
回复
客户端是不是禁止了COOKIES啊
freeboy827 2009-03-03
  • 打赏
  • 举报
回复
请确认赋值语句是否执行
delphi_new 2009-03-03
  • 打赏
  • 举报
回复
肯定里面有一个对象是NULL值,请跟下看

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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