问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

关于asp错误的null使用问题!!

提问网友 发布时间:2022-08-13 23:32
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
4个回答
热心网友 回答时间:2023-04-27 23:45
你想想,你的要求是sclass既不为空,又能等于某个变量,就有点冲突了,如果传递过来的cid是6,然而对应的6又是为空的,这个不就是逻辑错误了吗?达到这样的要求显然是一种思想错误。还有,你的sclass是一个文本字段吗?既然cid都是数值,何必又将sclass转换成字符串类型,然后再'"&cid&"'这样以字符串的形式比较呢?为什么不直接把sclass字段设置为数值类型,然后sql直接写sql="select * from news where sclass="&cid&" order by shijian desc"呢?
“原有代码sql="select * from news where cstr(sclass)='"&cid&"' order by shijian desc",sclass字段获取变量与常量null冲突。”-----很明显传递过来的cid在数据库中没能查询到sclass对应的数值,出错是肯定的!
“sql="select * from news where sclass is not null order by shijian desc"”-----------这句理所当然能查询到所有sclass不为空的记录
“sql="select * from news where sclass is not null and cstr(sclass)='"&cid&"' order by shijian desc"”---------显然还是犯了何第一条一样的错误,逻辑上有错误的,你给的条件,在程序中无法满足,也就是说只有当cid传递过来的数值在数据库中有的时候才能显示,但是前提是你现在数据库中没有这个sclass,它的值为空,
============解决办法、==========
加个on error resume next在网页头部试试,因为asp有时候有这样的错误,就是当你在以前已经拥有数据的数据库中新建了某个以前没有的字段,字段是建立起来了,而且新添加的记录里面也能往这个字段里面添加数据,但是当你查询以前的文章,由于以前没有这个字段,所以这个字段为空,不管你程序如何写,他都出错,有点类似你这个问题,要么就吧以前的数据这个为空的字段人工的一条条添加进去,要么就加on error resume next来容错处理,但是你的问题终将是因为数据库中sclass为空造成的,所以只能建议你这样写一个判断
Set rs =server.createobject("adodb.recordset")
sql="select * from news where cstr(sclass)='"&cid&"' order by shijian desc"‘一定要去掉那句sclass is not null,因为这个是逻辑错误
rs.open sql,conn,1,1
if rs.eof then '按照上面的语句查询记录,如果这个条件下,没有查询到数据就提示
response.write "对不起,没有查询到数据,可能是sclass为空,或者传递过来的cid在数据库中根本不存在!"
else
....
end if
祝你成功,只能想到这样解决了!
热心网友 回答时间:2023-04-27 23:46
给sclass一个默认的值比如 空格 或者 0,这样sclass就不会出现null了。也不会影响你的程序结构。
热心网友 回答时间:2023-04-27 23:46
1楼说的好多,但是问题我感觉出在cstr上,SQL首先对字段进行了处理,当巧合的是首先遇到了空值,所以我的意见是不在SQL语句中进行处理,比如说sclass的字段类型,如数值型,SQL语句这么写
="select * from news where sclass="&val(cid)&" order by shijian desc"
这样就不存在对NULL进行的操作,可以避免这个错误!
热心网友 回答时间:2023-04-27 23:47
在查询之间做个判断,这样就不用在sql语句中*了。
if not(isnull(cid) or cid="") then
sql="select * from news where sclass="&cid&" order by shijian desc"
end if

试试吧

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

null's clash怎么更新 thinkpad e450开机不了 北开头的二字成语 网名,北开头的二字网名 带北字的网名带北字的网名推荐 朋友喜得千金的祝福语 适合朋友喜得千金的祝福语 熬小米粥的做法,熬小米粥怎么做 小米是沉在水底还是浮在水上 陈小米怎么煮才好吃 陈小米熬粥如何香 我想办一个家教中心,可是有个问题拿不准收费是家教结束还是试用期结束... 想做家教,但通过中介的话会有手续费,而且怕被被骗,有没有靠谱一点的家教... 家教是先给钱还是后给钱 找家教是先给钱还是先上课后结算工资? 家教试课需要给钱吗? 家教一对一上门辅导是先收费还是后收费 一个手机如何同时登录两个? 一个手机号绑了两个怎么登录 如何在一个手机上同时登录两个 如何登录两个 一部手机 一个手机登两个怎么登? null'sbrawl如何去除延迟' 在C语言程序中,NULL指针常量的作用是什么? 生活在别处的点评鉴赏 英剧《低俗怪谈》里用了很多诗句,谁能列出来并且说明出处,谢谢!_百度知... “生活在别处”出处及表达思想 ...页面无法加载,请检查您的Internet连接并重试。 求助geforce experience登录时候提示 页面无法加载,请检查您的... 为什么微信搜搜不到 查找找不到的原因 有为什么搜不到 搜索个人微信 为什么微信搜索别人的搜不出来 怎么查找? 如何通过微信昵称找到? 已通过解锁申请,小米4以后会锁么 电影《最爱》告诉我们什么 原来话费是28块钱,不到30,孩子点错了订了30元5G的流量包,退订信息... 在国外,想要退订流量包但是发不出去短信 我发送0000到10086想退订点业务。怎么老是发送失败? 为什么我订的业务不能短信取消 为什么手机会出现境外的电话0086182 我是vivo手机/下载了小米桌面怎么换回原来的
Top