Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 关于随机化_Vb.net_Sql Server 2005_Visual Studio 2012_Random - Fatal编程技术网

Vb.net 关于随机化

Vb.net 关于随机化,vb.net,sql-server-2005,visual-studio-2012,random,Vb.net,Sql Server 2005,Visual Studio 2012,Random,我计划在vb.net、VS2012中制作一个入学考试windows应用程序,我想从数据库中随机选择问题(我使用ms sql server 2005 express),而不是重复每个问题。我对使用绑定导航器的想法有限。。。可以使用binding navigator随机选择吗?如果不可以,您是否有任何想法、建议、教程或文章要共享?最好的方法/解决方案是什么 提前谢谢你 试试这个: Public Class Form1 Dim numberOfRecords As Integer Di

我计划在vb.net、VS2012中制作一个入学考试windows应用程序,我想从数据库中随机选择问题(我使用ms sql server 2005 express),而不是重复每个问题。我对使用绑定导航器的想法有限。。。可以使用binding navigator随机选择吗?如果不可以,您是否有任何想法、建议、教程或文章要共享?最好的方法/解决方案是什么

提前谢谢你

试试这个:

Public Class Form1
    Dim numberOfRecords As Integer
    Dim questionArray() As Integer
    Dim count As Integer = 0

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ' Do logic here to load data from database

        ' Set the binding navigator's MoveNextItem property to nothing, because we are going to randomize the order instead of stepping through in order
        BindingNavigator.MoveNextItem = Nothing

        ' Get the number of records here from binding source
        numberOfRecords = BindingSource.Count

        ' Re-dimension array to size for total number of records
        ReDim questionArray(numberOfRecords)

        ' Initialize array of questions
        For i = 0 To numberOfRecords - 1
            questionArray(i) = i + 1
        Next

        ' Randomize the question array by moving items around
        For i = 0 To numberOfRecords - 1
            Dim swap As Integer = Int(((numberOfRecords - 1) * Rnd()) + 1)
            Dim num As Integer = questionArray(i)
            questionArray(i) = questionArray(swap)
            questionArray(swap) = num
        Next
    End Sub

    Private Sub BindingNavigatorMoveNextItem_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorMoveNextItem.Click
        BindingSource.Position = questionArray(count)

        ' Set the stopping point
        If count < numberOfRecords - 1 Then
            count = count + 1
        End If
    End Sub
End Class
公共类表单1
Dim numberOfRecords作为整数
Dim questionArray()作为整数
Dim计数为整数=0
私有子表单1_Load(发送方作为System.Object,e作为System.EventArgs)处理MyBase.Load
'在此处执行逻辑以从数据库加载数据
'将绑定导航器的MoveNextItem属性设置为nothing,因为我们将随机化顺序,而不是按顺序单步执行
BindingNavigator.MoveNextItem=无
'从绑定源获取此处的记录数
numberOfRecords=BindingSource.Count
'将数组的维度重新设置为记录总数的大小
ReDim问题数组(numberOfRecords)
'初始化问题数组
对于i=0到numberOfRecords-1
问题数组(i)=i+1
下一个
'通过移动项目使问题数组随机化
对于i=0到numberOfRecords-1
作为整数的Dim交换=整数((numberOfRecords-1)*Rnd())+1)
Dim num作为整数=问题数组(i)
questionArray(i)=questionArray(交换)
问题数组(交换)=num
下一个
端接头
私有子BindingNavigatorMoveNextItem\u Click(发送方作为System.Object,e作为System.EventArgs)处理BindingNavigatorMoveNextItem。Click
BindingSource.Position=questionArray(计数)
“设定停车点
如果计数
感谢您的回复!我将尝试这后,我完成我现有的项目。。。