如下所示,为什么使用isnumeric()函数后,三个都显示出来了?

研究了半边也不知道怎么回事
do while not rs.eof h=h+1
k1=h&l1
k2=h&l2
k3=h&l3
k4=h&l4
k5=h&l5
k6=h&l6
ware_no=Trim(request.Form(k1))
glbm=Trim(request.Form(k2))
fullname=Trim(request.Form(k3))
people=request.Form(k4)
phone=request.Form(k5)
address=request.Form(k6)
'判断软件序号长度及是否是数字
if Len(ware_no)<>6 then
Response.Write"导入错误:第"&H&"记录的软件序号"&ware_no&"位数不正确!<br>"
rs.MoveNext
end if
if isnumeric(ware_no)=flase then
Response.Write"导入错误:第"&H&"记录的软件序号"&ware_no&"不是纯数字!<br>"
rs.MoveNext
end if
if Len(glbm)<>20 then
Response.Write"导入错误:第"&H&"记录的微机管理编码"&glbm&"位数不正确!<br>"
rs.MoveNext
end if
rs.MoveNext
Loop
如果第一条记录 三个条件都不满足 正常第一个不满足就跳到下一条记录,可是使用isnumeric() 函数 后,三个都显示出来了 疑惑

一只甜甜圈
浏览 250回答 4
4回答

PIPIONE

当第一个不满足时,是跳到下一条记录了,但是你的ware_no依然获得是第一条记录的值,所以有可能所有的都显示出来。我觉得你的思路可以改一下。如:flag=falsestrErr=""if Len(ware_no)<>6 thenflag=truestrErr=strErr&"导入错误:第"&H&"记录的软件序号"&ware_no&"位数不正确!<br>"end ifif isnumeric(ware_no)=flase thenflag=truestrErr=strErr&"导入错误:第"&H&"记录的软件序号"&ware_no&"不是纯数字!<br>"end ifif Len(glbm)<>20 thenflag=truestrErr=strErr&"导入错误:第"&H&"记录的微机管理编码"&glbm&"位数不正确!<br>"end ifif flag thenresponse.write strErrrs.movenextend if不知道对于你的思路有没有帮助!

蓝山帝景

k1=h&l1把每一句这样的改成k1=int(h%l1)先强制转换字符类型成数字型试试。

尚方宝剑之说

把if isnumeric(ware_no)=flase thenResponse.Write"导入错误:第"&H&"记录的软件序号"&ware_no&"不是纯数字!<br>"rs.MoveNextend if删除,看输出结果再分析下,如果不行,就强制声明ware_no的数据类型,保护数据原型

紫衣仙女

不知道你想怎么样,是不是想达到这样目的?do while not rs.eofh=h+1k1=h&l1k2=h&l2k3=h&l3k4=h&l4k5=h&l5k6=h&l6ware_no=Trim(request.Form(k1))glbm=Trim(request.Form(k2))fullname=Trim(request.Form(k3))people=request.Form(k4)phone=request.Form(k5)address=request.Form(k6)'判断软件序号长度及是否是数字if Len(ware_no)<>6 thenResponse.Write"导入错误:第"&H&"记录的软件序号"&ware_no&"位数不正确!<br>"elseif isnumeric(ware_no)=flase thenResponse.Write"导入错误:第"&H&"记录的软件序号"&ware_no&"不是纯数字!<br>"elseif Len(glbm)<>20 thenResponse.Write"导入错误:第"&H&"记录的微机管理编码"&glbm&"位数不正确!<br>"end ifrs.MoveNextLoop
打开App,查看更多内容
随时随地看视频慕课网APP