Foxtable(狐表)用户栏目专家坐堂 → 这个错误提示怎么回事呢?


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

主题:这个错误提示怎么回事呢?

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


加好友 发短信
等级:童狐 帖子:250 积分:2749 威望:0 精华:0 注册:2014/3/11 12:11:00
这个错误提示怎么回事呢?  发帖心情 Post By:2020/3/10 12:18:00 [只看该作者]

DataColChanged

If e.DataCol.Id = "levelFULLId"
    If e.NewValue = Nothing Then
        e.DataRow("leve11Id") = Nothing
        e.DataRow("leve12Id") = Nothing
    Else
        Dim chrs() As Char = {","}
        Dim ary() As String = e.NewValue.split(chrs)
        e.DataRow("leve11Id") = ary(0)
        e.DataRow("leve12Id") = ary(1)        
    End If
End If
--------------------------------------------------------
详细错误信息:
Exception has been thrown by the target of an invocation.
Index was outside the bounds of the array.
详细错误信息:
调用的目标引发了异常。
索引超出数组的边界。
[此贴子已经被作者于2020/3/10 12:19:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/10 14:06:00 [只看该作者]

DataColChanged

If e.DataCol.Id = "levelFULLId"
    If e.NewValue = Nothing Then
        e.DataRow("leve11Id") = Nothing
        e.DataRow("leve12Id") = Nothing
    Else
        Dim chrs() As Char = {","}
        Dim ary() As String = e.NewValue.split(chrs)
        e.DataRow("leve11Id") = ary(0)
if ary.length = 2 ‘如果数据 没有逗号,拆分这里就出错的’
        e.DataRow("leve12Id") = ary(1)      
end if  
    End If
End If

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


加好友 发短信
等级:童狐 帖子:250 积分:2749 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2020/3/10 14:42:00 [只看该作者]

怎么判断ary.length层级,并且对level进行正确赋值呢?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/10 14:46:00 [只看该作者]

就是2楼的用法,要使用ary(1),就判断ary.length = 2,要使用ary(2),就判断ary.length = 3,....

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


加好友 发短信
等级:童狐 帖子:250 积分:2749 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2020/3/10 14:52:00 [只看该作者]

 If ary.length = 1
      e.DataRow("leve11Id") = ary(0) 
   elseIf ary.length = 2
      e.DataRow("leve12Id") = ary(1) 
   elseIf ary.length = 3
      e.DataRow("leve13Id") = ary(2) 
 End If

这样吗?这样的结果只有leve13Id有值,leve11Id和leve12Id没有值啊.

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/10 14:56:00 [只看该作者]

e.DataRow("leve11Id") = ary(0) 
If ary.length >= 2
      e.DataRow("leve12Id") = ary(1) 
end if
If ary.length >= 3
      e.DataRow("leve13Id") = ary(2) 
 End If

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


加好友 发短信
等级:童狐 帖子:250 积分:2749 威望:0 精华:0 注册:2014/3/11 12:11:00
  发帖心情 Post By:2020/3/10 15:00:00 [只看该作者]

谢谢,测试没问题.
[此贴子已经被作者于2020/3/10 15:18:06编辑过]

 回到顶部