以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 从字符串“”到类型“Double”的转换无效--- (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98757) |
-- 作者:zhangjian222200 -- 发布时间:2017/4/6 14:09:00 -- 从字符串“”到类型“Double”的转换无效--- 手机行输入:18961305238,然后直接点击“注册”按钮,弹出1、2,弹出窗口,显示上述内容,中断执行 Dim e As RequestEventArgs = args(0) \'验证页面(注册第1页) Select Case e.Path Case "valid_register.htm" Dim wb As New weui Dim num As String = e.PostValues("isj") \'验证手机号 msgbox(num) Dim dr As DataRow \'定义输入的手机号,所在的行(以便于下面代码内查找此行) Dim sjcz As String \'定义手机存在 Dim yzmm As String = e.PostValues("imm") \'验证密码 Dim yzxb As String = e.PostValues("sxb") \'验证性别 Dim yzfwxy As String = e.PostValues("fuwuxieyi") \'验证服务协议 Dim pattern As String = "^[1][345789][0-9]{9}$" Dim txt = num msgbox(1) Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase) msgbox(2) ——————————————————————粉线之间代码改了 If num.length = "" Then msgbox(3) e.WriteString("手机不能为空!") Return "" End If msgbox(4) If rgx.isMatch(txt) = False Then e.WriteString("请输入正确的手机号!") Return "" End If msgbox(5) If rgx.isMatch(txt) = True Then \'(num.length <> 11) dr = DataTables("会员资料").sqlFind("手机 = \'" & num & "\'") If dr IsNot Nothing Then e.WriteString("手机不能重复!") Return "" End If End If msgbox(6) ——————————————————————- If yzmm = "" Then e.WriteString("密码不能为空!") Return "" ElseIf yzmm <> "" AndAlso (yzmm.Length > 12) Then e.WriteString("密码不能大于12位!") Return "" ElseIf yzmm <> "" AndAlso (yzmm.Length < 6) Then e.WriteString("密码不能小于6位!") Return "" End If If yzxb = "" Then e.WriteString("性别不能为空!") Return "" ElseIf yzxb = "注册后,性别不可更改!" Then e.WriteString("请选择性别!") Return "" End If If yzfwxy <> "是" Then e.WriteString("未确认服务协议!") Return "" End If Dim drs As DataRow = DataTables("会员资料").AddNew() Dim drbianh As String = DataTables("会员资料").SQLCompute("Max(会员编号)") + 1 e.AppendCookie("drbianhao",drbianh) \'在客户端存储Cookie(保存新增的会员编号) If drs IsNot Nothing Then drs("会员编号") = drbianh drs("手机") = e.PostValues("isj") drs("密码") = e.PostValues("imm") drs("性别") = e.PostValues("sxb") drs("注册日期") = Date.Today drs("会员等级") = "普通会员" drs.save() End If \'With wb.AddMsgPage("","msgpage","注册成功", "本地自助服务,为您婚恋交友之路保驾护航") \'生成成功提示页 \'.AddButton("btn1","完善资料","/fillout.htm") \'End With wb.InsertHTML("<meta http-equiv=\'Re-fresh\' con-tent=\'0; ur-l=/zhucwc.htm\'>") \'那么直接跳转页面 e.WriteString(wb.Build) \'生成网页 End Select
[此贴子已经被作者于2017/4/6 20:02:35编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/6 14:14:00 -- ElseIf (num.length <> "")
获取长度是数字,不能和字符串比较。 |
-- 作者:zhangjian222200 -- 发布时间:2017/4/6 14:28:00 -- 按2楼改了, 改了的代码,写在1楼粉色线之间,问题还在 手机行输入:18961305238,然后直接点击“注册”按钮,弹出1、2,依然弹出1楼的窗口
[此贴子已经被作者于2017/4/6 14:28:51编辑过]
|
-- 作者:zhangjian222200 -- 发布时间:2017/4/6 15:32:00 -- 注释了1楼下面几行就好了,但问题为什么不能这样输入 If num.length = "" Then msgbox(3) e.WriteString("手机不能为空!") Return "" End If [此贴子已经被作者于2017/4/6 15:46:25编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/6 15:43:00 -- 不是说得很清楚吗?length得到的是数字,不能和字符串""比较
你可以写成 If num = "" Then |
-- 作者:zhangjian222200 -- 发布时间:2017/4/6 15:47:00 -- 另外,当什么也不输入时,点击注册按钮 弹窗提示: .NET Framework 版本:2.0.50727.3655 Foxtable 版本:2017.3.18.1 错误所在事件:自定义函数valid_register 详细错误信息: 调用的目标发生了异常。 值不能为空。 参数名: input |
-- 作者:有点色 -- 发布时间:2017/4/6 16:53:00 -- 不知道你改成怎样的了。你加入msgbox定位错误位置再说。 |