Foxtable(狐表)用户栏目专家坐堂 → BOM嵌套检查的内部函数死循环。


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

主题:BOM嵌套检查的内部函数死循环。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/8 8:20:00 [显示全部帖子]

逻辑只有你最清楚,解决办法很简单,自己增加两三行数据,用MessageBox跟踪执行进度,看看在该退出的地方,为什么没有退出。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/8 16:31:00 [显示全部帖子]

楼主,其实你直接说明你需要干什么就行了。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/8 17:28:00 [显示全部帖子]

什么是父子嵌套? 举例说明

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/9 9:36:00 [显示全部帖子]

其实很简单,不需要递归,你在命令窗口执行:

 

Dim drs As New List(of DataRow)
Dim keys As New List(of String)
For Each dr As DataRow In DataTables("表A").DataRows
    keys.Clear
    Dim dr1 As DataRow = dr
    keys.Add(dr("键"))
    Do
        Dim pkey As String = dr1("父键")
        If keys.Contains(pkey)
            drs.Add(dr)
            Exit Do
        Else
            keys.Add(pkey)
            dr1 = DataTables("表A").Find("键 = '" &  pkey  & "'")
            If dr1 Is Nothing Then
                Exit Do
            End If
        End If
    Loop
Next

'列出死循环的行的标题
For Each dr As DataRow In drs
    output.show(dr("标题"))
Next

[此贴子已经被作者于2013-7-9 9:38:17编辑过]

 回到顶部