Foxtable(狐表)用户栏目专家坐堂 → 从字符串“”到类型“Double”的转换无效---


  共有2157人关注过本帖树形打印复制链接

主题:从字符串“”到类型“Double”的转换无效---

帅哥哟,离线,有人找我吗?
zhangjian222200
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
从字符串“”到类型“Double”的转换无效---  发帖心情 Post By:2017/4/6 14:09:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017040614095555555555555.png
图片点击可在新窗口打开查看
手机行输入: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 14:14:00 [只看该作者]

ElseIf (num.length <> "")

 

获取长度是数字,不能和字符串比较。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/6 14:28:00 [只看该作者]

按2楼改了,

改了的代码,写在1楼粉色线之间,问题还在

手机行输入:18961305238,然后直接点击“注册”按钮,弹出1、2,依然弹出1楼的窗口
[此贴子已经被作者于2017/4/6 14:28:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/6 15:32:00 [只看该作者]

注释了1楼下面几行就好了,但问题为什么不能这样输入

        If num.length = "" Then
                msgbox(3)
            e.WriteString("手机不能为空!")
            Return ""
        End If

[此贴子已经被作者于2017/4/6 15:46:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 15:43:00 [只看该作者]

不是说得很清楚吗?length得到的是数字,不能和字符串""比较

 

你可以写成 If num = "" Then


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/4/6 15:47:00 [只看该作者]

另外,当什么也不输入时,点击注册按钮
弹窗提示:
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.3.18.1
错误所在事件:自定义函数valid_register
详细错误信息:
调用的目标发生了异常。
值不能为空。
参数名: input

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 16:53:00 [只看该作者]

 不知道你改成怎样的了。你加入msgbox定位错误位置再说。


 回到顶部