2 sakura chun sakura_chun 于 2016.01.27 21:50 提问

用 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个回答

caozhy
caozhy   Ds   Rxr 2016.01.27 21:59

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

sakura_chun
sakura_chun 笔误笔误...实际上有括号的
接近 2 年之前 回复
showbo
showbo   Ds   Rxr 2016.01.28 08:59

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

  IF Isnumeric(objrs("CUR_NO").value&"") THEN
sakura_chun
sakura_chun 回复无聊码农: 可是数据库那列有值的呀
接近 2 年之前 回复
showbo
showbo 回复sakura_chun: 就是数据库那列的值为null,用recordset取出来的value就是empty,对empty调用isnumeric返回true。就如这样 dim a :response.write isnumeric(a)'返回true
接近 2 年之前 回复
sakura_chun
sakura_chun 谢谢你的回答~我现在在后面加了&""之后确实isnumeric返回了true,但是我没太明白objrs("CUR_NO").value的值为empty的意思是从数据库里取出来的数据是空的的意思?
接近 2 年之前 回复
sakura_chun
sakura_chun 谢谢你的回答~我现在在后面加了&""之后确实isnumeric返回了true,但是我没太明白objrs("CUR_NO").value的值为empty的意思是从数据库里取出来的数据是空的的意思?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!