以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  字符串转换提示错误问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191049)

--  作者:lrh9537
--  发布时间:2024/3/23 16:26:00
--  字符串转换提示错误问题
如下数据列:证件号码,           残疾证号,                               残疾等级,    残疾类型
41132319521114051541,     41132319521114051541,     41,           肢体一级
41132319820621051952B1, 41132319820621051952B1,  52B1
残疾证号为20位的正常显示,
残疾证号为22位的提示错误如下:
Conversion from string "52B1" to type \'Double\' is not valid.
请老师帮忙解决下,谢谢


代码如下:
Dim Result As DialogResult
Dim zt1 As String = "肢体一级"
Dim zt2 As String = "肢体二级"
Result = MessageBox.Show("导入残疾证号吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    For Each dr As DataRow In DataTables("脱贫人口信息表").DataRows
        If dr.isnull("证件号码") = False AndAlso dr("证件号码").length = 20 Then
            dr("残疾证号") = left(dr("证件号码"), 20)
            dr("残疾等级") = Right(dr("证件号码"), 2)
        ElseIf dr.isnull("证件号码") = False AndAlso dr("证件号码").length = 22 Then
            dr("残疾证号") = left(dr("证件号码"), 22)
            dr("残疾等级") = Right(dr("证件号码"), 4)
        End If
        
            If dr("残疾等级") = 41 Then
                dr("残疾类型") = zt1
            ElseIf dr("残疾等级") = 42 Then
                dr("残疾类型") = zt2
            End If
      
    Next
    DataTables("脱贫人口信息表").Save
    MessageBox.Show("残疾证号已全部导入。", "提示")
Else
    MessageBox.Show("残疾证号未全部导入,请重新操作。", "提示")
End If

    
[此贴子已经被作者于2024/3/23 16:29:12编辑过]

--  作者:有点蓝
--  发布时间:2024/3/23 16:41:00
--  
残疾等级列改为字符型列
--  作者:lrh9537
--  发布时间:2024/3/23 16:43:00
--  
就是字符型列
41,    字符串为纯数字
52B1,字符串包含数字和字母,导致无法运行下去,需要解决此问题
[此贴子已经被作者于2024/3/23 16:49:38编辑过]

--  作者:有点蓝
--  发布时间:2024/3/23 16:45:00
--  
那就不是上面代码的问题,检查其它代码
--  作者:lrh9537
--  发布时间:2024/3/23 16:51:00
--  
这个错误表明尝试将字符串 "52B1" 转换为 Double 类型,但是这个操作是非法的,因为 "52B1" 包含非数字字符 "B"。
--  作者:有点蓝
--  发布时间:2024/3/23 17:20:00
--  
这个是自己要思考的问题,这种情况需要转换为什么数字?