Foxtable(狐表)用户栏目专家坐堂 → 测试无反应


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

主题:测试无反应

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


加好友 发短信
等级:幼狐 帖子:102 积分:966 威望:0 精华:0 注册:2015/10/1 16:23:00
测试无反应  发帖心情 Post By:2015/12/15 10:20:00 [只看该作者]

老师们好,请问我测试如下代码为何会无反应呢:

 

随机抽取表中40条[选项]为false 的记录并把它设为true,当表中只剩下40条[选项]为false 的记录时,此时执行程序会稳死那,只能强迫

关闭重程序了。

 

Dim lst As new List(of Integer)
        Dim y2 As Integer=0
        Dim dr As DataRow
        Dim b As Integer
        Dim drs As List (Of DataRow) = DataTables("表APA").Select("[选择] = false and [类型]='A'")
        b=drs.Count    
        Do
            Dim idx As Integer = rand.Next(0,b-1)
            dr = drs(idx)
            n1=dr("序号")
            If lst.Contains(n1)=False Then
                dr("选择")=True
                lst.add(n1)
                y2=y2+1
            End If
        Loop While y2<40


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 10:22:00 [只看该作者]

抽取越接近总体,就不能用这种方法。

 

你有洗牌的方式吧

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=68314&skin=0

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 10:24:00 [只看该作者]

再者,有可能你的drs.count根本就不够40个,导致一直循环。

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


加好友 发短信
等级:幼狐 帖子:102 积分:966 威望:0 精华:0 注册:2015/10/1 16:23:00
  发帖心情 Post By:2015/12/15 11:03:00 [只看该作者]

以下是引用大红袍在2015/12/15 10:24:00的发言:
再者,有可能你的drs.count根本就不够40个,导致一直循环。

41个就可以,40就不行。

 

谢谢老师!


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 11:07:00 [只看该作者]

 

  Dim idx As Integer = rand.Next(0,b-1)

 

改成

 

  Dim idx As Integer = rand.Next(0,b)


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


加好友 发短信
等级:幼狐 帖子:102 积分:966 威望:0 精华:0 注册:2015/10/1 16:23:00
y这样。。。  发帖心情 Post By:2015/12/15 12:45:00 [只看该作者]

 

谢谢老师


 回到顶部