从产生000~999之间产生300个不重复的随机数,过程显示在文本框中,并存入表C的第一列。
DataTables("表C").DeleteFor("")
Dim i As Integer
Dim tt As Boolean '判断是否重复随机楼
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Tables("表C").StopRedraw
For i = 1 To 300
Dim r As Row= Tables("表C").AddNew
Do '循环,至少一次
Dim Val As String = Rand.Next(1000) '生成0到999之间的随机整数
Dim s As String = val.PadLeft(3, "0")
Dim dr As DataRow
dr =DataTables("表C").Find("第一列 = '& s &'")
If dr IsNot Nothing Then '如果找到的话
'重新求随机数
tt = True
Else
txt.Text = s '文本框显示随机数
r("第一列") = s
tt = False '找到不重复的随机数,DO循环结束
End If
Loop While tt
Next
Tables("表C").ResumeRedraw
以上语句会产生死循环,可能大量时间浪费在查找不重复的随机数上,而且在随机数产生过程中,文本框也没跟着变化,请问下,如何改进?
[此贴子已经被作者于2018/11/20 14:22:44编辑过]