注册 登录
编程论坛 ASP技术论坛

数据怎么输出不对

a768841969 发布于 2011-06-03 10:44, 952 次点击
<!--#include file="conn.asp"-->
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from yonghu where uid=12",conn,3,2
if rs.bof or rs.eof then
   response.Write("wo  hao ")
   else
     if rs("userid")="" or rs("userid")=0 then
      response.Write("nihao ")
      else
        response.Write("tahao")
        end if
end if
%>
很简单的一个例子但是怎么用if rs("userid")="" or rs("userid")=0控制不住呢,我的数据库 定义的一个userid字段,是数字型的,可以为空
该字段我什么也没填,但是我用if rs("userid")="" or rs("userid")=0 他怎么输出的是tahao呢,应该是nihao 啊
12 回复
#2
dzt00012011-06-03 10:57
if isNull(rs("userid"))
#3
a7688419692011-06-03 11:03
这个不是数字型的吗
#4
yms1232011-06-03 11:18
数字型的尤其数据库里的为空不是0
#5
a7688419692011-06-03 11:23
那我用rs("userid")=""怎么不行呢
#6
yms1232011-06-03 11:36
推荐2楼的写法,因为你用rs("userid")=""是判断字符串为空,因为userid不是字符串所以判断无效,再有就是你的userid在数据库中没有默认值所以为空时是null
#7
hams2011-06-03 11:53
数字型的空值不是空,而是0
#8
dzt00012011-06-03 12:30
只有本站会员才能查看附件,请 登录


数字型字段可以是空值
#9
a7688419692011-06-03 13:18
if isNull(rs("userid")) 跟 if rs("userid")=“”和 if rs("userid")=null不一样吗 他们不是都判断字符串是否为空吗


[ 本帖最后由 a768841969 于 2011-6-3 14:30 编辑 ]
#10
dzt00012011-06-03 15:17
Null和空字符串""是不一样的,Null值是什么都没有,连长度都没有;空字符串的长度是0,所以也称零长度字符串。

if isNull(rs("userid")) 可以用 if rs("userid")=null,只不过前者是用了函数

 
#11
a7688419692011-06-03 15:30
不是啊  用if isNull(rs("userid"))输出的结果是nihao和用if rs("userid")=null输出的结果是tahao    两者输出的结果不一样的啊
#12
dzt00012011-06-03 16:41
搞错了,收回10楼的最后一句话。js用的是...==null,asp用isnull(...),sql用isnull(...)或 ... is null

[ 本帖最后由 dzt0001 于 2011-6-3 16:43 编辑 ]
#13
bccn3042011-06-03 23:21
我以前也试过楼主的问题,用二楼的方法可解决的,学习了
1