用 Isnumeric判断从SQL中取出的(类型为numeric)数据返回值是False是为什么?

之前在sybase环境时使用的是自动采番功能,现在移到SQLServer环境就想用取得最大值然后加一的方法实现插入。
因为本来就有写好的取得最大值的函数所以就拿来直接用了,在+1之前要用Isnumeric()判断是否为数字。
判断时的语句是

 IF Isnumeric(objrs("CUR_NO").value) THEN
                        CreateMaxNo = objrs("CUR_NO").value +1
                   Else
                        CreateMaxNo = 1
                   End IF

然后CUR_NO所在的SQL文是

 SELECT MAX(xxx) AS CUR_NO FROM yyy

这个xxx在yyy表中的数据类型是numeric

用response.write显示objrs("CUR_NO").value的值是3565613,
用response.write Isnumeric(objrs("CUR_NO").value)得到的结果是false

希望知道的大神能回答~跪谢!

2个回答

IF Isnumeric(objrs("CUR_NO").value THEN
这里少括号啊,到底你的括号在哪里,这决定了 Isnumeric判断的是你的字段的值还是字段对象

sakura_chun
sakura_chun 笔误笔误...实际上有括号的
4 年多之前 回复

objrs("CUR_NO").value的值为empty,就是这个值在数据库中为null,empty调用isnumeric返回true,连接一个空字符串转为字符串

  IF Isnumeric(objrs("CUR_NO").value&"") THEN
sakura_chun
sakura_chun 回复无聊码农: 可是数据库那列有值的呀
4 年多之前 回复
showbo
支付宝加好友偷能量挖 回复sakura_chun: 就是数据库那列的值为null,用recordset取出来的value就是empty,对empty调用isnumeric返回true。就如这样 dim a :response.write isnumeric(a)'返回true
4 年多之前 回复
sakura_chun
sakura_chun 谢谢你的回答~我现在在后面加了&""之后确实isnumeric返回了true,但是我没太明白objrs("CUR_NO").value的值为empty的意思是从数据库里取出来的数据是空的的意思?
4 年多之前 回复
sakura_chun
sakura_chun 谢谢你的回答~我现在在后面加了&""之后确实isnumeric返回了true,但是我没太明白objrs("CUR_NO").value的值为empty的意思是从数据库里取出来的数据是空的的意思?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐