代码如下:
Dim cnt As Integer = DataTables("题库").DataRows.Count
Dim str As New List(of Integer) '用于存储洗牌前的位置
For i As Integer = 0 To cnt -1 '准备初始的牌
str.add(i)
Next
For i As Integer = 1 To str.count '洗牌测次数
Dim rnum1 As Integer = Rand.Next(str.count -1)
Dim rnum2 As Integer = Rand.Next(str.count -1)
Dim temp As String = str(rnum1)
str(rnum1) = str(rnum2)
str(rnum2) = temp
Next
Tables("题库").StopRedraw()
DataTables("题库").ReplaceFor("抽取",False)
For i As Integer = 0 To 10- 1 '5为要抽取的行数
DataTables("题库").DataRows(str(i))("抽取") = True
Next
Tables("题库").Filter = "[抽取] = True"
Tables("题库").ResumeRedraw()
DataTables("题库").dataRows.delete("序号") '清除序号列原有数据
DataTables("题库").DataCols("题目").RaiseDataColChanged()'重置序号列
Tables("题库").save
forms("初始界面").close
forms("答题面板").open
经过测试,应该是下面这段代码有问题,附错误提示截图。
DataTables("题库").dataRows.delete("序号") '清除序号列原有数据
DataTables("题库").DataCols("题目").RaiseDataColChanged()'重置序号列
此主题相关图片如下:2.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2015-11/201511131532955314.png)