以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码执行报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183194)

--  作者:lgz518
--  发布时间:2022/10/27 22:53:00
--  代码执行报错
If e.DataCol.name = "类别" AndAlso e.DataRow.isnull("类别") = False Then
    \'Dim ar() As String = e.DataRow("字段字符折分").split("*")
    Dim ar() As String = e.DataRow("类别").split("\\")
    e.DataRow("主类") = ar(0)
    e.DataRow("次类") = ar(1)
    e.DataRow("分类") = ar(2)
    e.DataRow("尺寸") = ar(3)
    e.DataRow("色类") = ar(4)
    
End If

执行上面代码,报错:要如何解决?

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表,字段字符折分, DataColChanged
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限

--  作者:有点蓝
--  发布时间:2022/10/27 23:00:00
--  
没有5个那么多:msgbox(ar.length)

合理的用法是
    e.DataRow("主类") = ar(0)
    if ar.length > 1 then e.DataRow("次类") = ar(1)
    if ar.length > 2 then e.DataRow("分类") = ar(2)
……