老师,这样没有上面的效果了,一次出现很多个,不是一个
Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim cnt As Integer = drs.Count
Dim ids1 As New List(Of Integer) '用于存储洗牌前的位置
Dim ids2 As New List(Of Integer) '用于存储洗牌后的位置
If 1 > cnt Then
MessageBox.Show("随机抽签完毕,请您指示,结束请挂机", "提示!")
Return
End If
For i As Integer = 0 To cnt - 1 '准备初始的牌
ids1.add(i)
Next
For i As Integer = 0 To cnt - 1 '开始洗牌
'Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim idx As Integer = rand.Next(0, ids1.count)
drs(idx)("已选中") = True
Dim k As Integer = Tables("表A").findrow(drs(idx))
Tables("表A").position = k
' Dim idx As Integer = ids1(rand.Next(0, ids1.count))
ids2.Add(idx)
ids1.Remove(idx)
Next
For i As Integer = 0 To 1 - 1 '100为要抽取的行数
drs(ids2(i))("已选中") = True
Next
DataTables("表A").Save