以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74414)

--  作者:kaituozhe
--  发布时间:2015/9/10 13:04:00
--  代码

Select Case e.DataCol.name
Case "银行卡号","银行账号"
Dim s As String =e.DataRow("银行卡号").Substring(1,6)
Dim dr As DataRow
dr = DataTables("银行卡代码").Find("[银行卡代码] = \'" & s & "\'")
        If dr IsNot Nothing Then 
            e.DataRow("归属银行") = dr("归属银行")
        End If
End Select

 

想取银行卡号前6位与银行卡代码进行比较,找到相应的归属银行填写到表内,编写了上述代码,执行不了。


--  作者:Hyphen
--  发布时间:2015/9/10 14:37:00
--  
前6位不是Substring(0,6)么

--  作者:kaituozhe
--  发布时间:2015/9/10 14:53:00
--  
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:表,查询表,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length
一直提示这是什么意思
--  作者:Hyphen
--  发布时间:2015/9/10 14:57:00
--  
测试数据银行卡号是不是小于6位
--  作者:大红袍
--  发布时间:2015/9/10 15:03:00
--  

加入判断

 

Select Case e.DataCol.name
    Case "银行卡号","银行账号"
        If e.DataRow("银行卡号").length > 6 Then
            Dim s As String =e.DataRow("银行卡号").Substring(1,6)
            Dim dr As DataRow
            dr = DataTables("银行卡代码").Find("[银行卡代码] = \'" & s & "\'")
            If dr IsNot Nothing Then
                e.DataRow("归属银行") = dr("归属银行")
            End If
        End If
End Select