-1

で入試用の Windows アプリケーションを作成する予定でvb.net,VS2012、データベースから質問をランダムに選択し (ms sql server 2005 Express を使用)、すべての質問を繰り返さないようにしたいと考えています。バインディング ナビゲーターの使用について、限られた考えしかありません... バインディング ナビゲーターを使用してランダムに選択することは可能ですか、そうでない場合、共有したいアイデア、提案、チュートリアル、または記事はありますか? これを行うための最良の方法/解決策は何ですか?

前もって感謝します!

4

1 に答える 1

2

これを試して:

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
于 2013-09-18T03:43:58.733 に答える