判断session为空

zhb1190 2009-02-22 08:13:22
从access数据库中读出的一个文本类型的字段,但是该字段里面没有内容,把这个字段赋值给session("UserName")


if session("UserName") = null then
response.write "UserName空"
else
response.write "UserName不为空"
end if

为什么总是执行response.write "UserName不为空"这句
使用session("UserName") = ”“也是执行
response.write "UserName不为空"
如果使用session("UserName") is nothing判断提示缺少对象

使用的是vbscript
...全文
603 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonylinzhen 2009-11-08
  • 打赏
  • 举报
回复
这个当然是response.write "UserName不为空"
因为session("UserName") = null这个语句是false
NULL的意义,当你把一个数据定义为NULL时,就等于告诉系统,这个数据不存在,或未知。不要管它了,它的内容没有意义(当然,这本身也是一种意义)。在房间中有一个NULL,只表示没有人,而不会被认为是一个叫“没有人”的人住在里面。更不会有一个霸占了所有房间的恶客存在。要清空LIVERS,那就清吧,只要你设置了级联约束,就不会有任何离奇的事出现。唯一的后果只是一个无人居住的公寓而已,这不正是我们所要的吗?
在《SQL-3参考大全》中,作者这样解释NULL的含义:未知或未定义。对NULL来说,有很多有趣的特性。

NULL是一个数据值,而且它属于一个域(?)。是的,例如一个字符串字段,其中的空值只能是一个字符串。尽管它的内容没有定义,或者未知,但它是字符串,这一点无可置疑。

NULL不是非法数据,这一点SQL-3 标准也说的很清楚。我们没有办法保存零分之一,但可以保存空值。虽然它是空值,是未定义,是未知,可它也的确是 一个合法的信息。

运算黑洞:对于NULL,一般的运算都会返回NULL。比如加减乘除,这简直就是一个黑洞一样。永远不会有什么数据等于NULL。当然,1不等于NULL,2也一样。可是,NULL也不等于NULL。说一个NULL等于NULL是错误的。所以我们只能比较它“是”或“不是”。为了避免混乱,SQL-3标准有一些约定。比如表达式 x=NULL,结果应当是UNKOWN 。 而表达式“x is NULL”,就得看情况,如果x是NULL或 False,就返回Ture(?);x是非NULL,返回False。有点奇怪是不是,它基于NULL不等于NULL。 这个规则的确为SQL标准所支持,遇到这样的数据库系统,可不要感到惊讶。
由此可见session("UserName") = null这个返回值一定会是false
tonylinzhen 2009-11-08
  • 打赏
  • 举报
回复
null 从数据库中读出来会不会变成字符串了?if session("UserName") = "null" 试试看
zhb1190 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lzp4881 的回复:]
引用 6 楼 zhb1190 的回复:
引用 5 楼 lzp4881 的回复:
你给session("UserName")赋值没有哦。

我是从access数据库中读出的一个文本类型字段,但是该字段在数据中为空,现在就是想判断出这个空值!


读出来不等于赋值了啊,你没赋值判断个屁啊,肯定为空喽。
你要先在前面读取数据库时加一句
session("UserName")=rs("UserName")
[/Quote]

我肯定是读出来以后赋值了!而且我也给你说清楚了状况!如果这个问题是因为我没有赋值我也就不再这里问了!所以说话还是注意一些,你懂得比我多并不比代表比所有人牛,我这个问题没有解决只想请教,如果你觉得我很弱可以选择不回答!
我也是找了好长时间现在才发现,这个问题并不是出在有没有赋值上,而是我给它赋的值是从access中读出的recordset中的值,所以判断的时候要像判断数据库那样,用isnull判断
搬运工865 2009-02-23
  • 打赏
  • 举报
回复

if empty(session("UserName")) then
response.write "UserName空"
else
response.write "UserName不为空"
end if
zhuyongzhao 2009-02-22
  • 打赏
  • 举报
回复
你先输出一下session("UserName")的值 .看看是什么效果
lzp4881 2009-02-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhb1190 的回复:]
引用 5 楼 lzp4881 的回复:
你给session("UserName")赋值没有哦。

我是从access数据库中读出的一个文本类型字段,但是该字段在数据中为空,现在就是想判断出这个空值!
[/Quote]

读出来不等于赋值了啊,你没赋值判断个屁啊,肯定为空喽。
你要先在前面读取数据库时加一句
session("UserName")=rs("UserName")
zhb1190 2009-02-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lzp4881 的回复:]
你给session("UserName")赋值没有哦。
[/Quote]
我是从access数据库中读出的一个文本类型字段,但是该字段在数据中为空,现在就是想判断出这个空值!
lzp4881 2009-02-22
  • 打赏
  • 举报
回复
你给session("UserName")赋值没有哦。
zhb1190 2009-02-22
  • 打赏
  • 举报
回复
我试了一下,还是不行,无论是len(trim(session("UserName")))=0 或者是len(trim(session("UserName")))<>0
或者无论是session("UserName") = null or session("UserName") = "" 还是session("UserName") <> null and session("UserName") <> "" 总是执行response.write "UserName不为空"
这句
感觉很奇怪,不知道什么原因!
sy_binbin 2009-02-22
  • 打赏
  • 举报
回复
if session("UserName") = null or session("UserName") = "" then
response.write "UserName空"
else
response.write "UserName不为空"
end if
搬运工865 2009-02-22
  • 打赏
  • 举报
回复
if len(trim(session("UserName")))=0 then
response.write "UserName空"
else
response.write "UserName不为空"
end if
  • 打赏
  • 举报
回复
if session("UserName") = null or session("UserName") = "" then
response.write "UserName空"
else
response.write "UserName不为空"
end if

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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