如何读取数据库中的随机实体

how to read a random entity in a database

我只是想知道如何在访问列中显示随机实体。

Imports System.Data.OleDb
Public Class ReviseFlashcards

Dim connection As New OleDb.OleDbConnection(
  "provider=microsoft.ACE.OLEDB.12.0;Data Source=flashcard login.accdb")
Dim dt As New DataTable
Dim dataadapter As OleDb.OleDbDataAdapter
'contains the current row number
Dim rownumber As Integer = 0
'Data table to contain all the records

Private Sub ReviseFlashcards_Load(sender As Object, e As EventArgs) _
  Handles MyBase.Load
    Dim sqlstring As String = "select * from flashcards"
    connection.Open()
    dataadapter = New OleDb.OleDbDataAdapter(sqlstring, connection)
    dt.Clear()
    dataadapter.Fill(dt)

    txtFront.Text = dt.Rows(0)(2)
    txtBack.Text = dt.Rows(0)(3)
    connection.Close()
End Sub

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) _
  Handles btnDisplay.Click

End Sub

End Class

当前代码显示数据库中的第一行,如下所示。我想知道是否有一种方法可以通过单击前后相互匹配的按钮来显示随机行。 The access database

在表单中添加一个随机生成器。 Make shure 将其声明为 Shared,这样这个生成器将只被创建一次。这确保它生成唯一的随机数序列(参见:Why isn't this Random number generation code working?)。

Private Shared rand As New Random()

然后根据实际行数创建行索引:

Dim index = rand.Next(dt.Rows.Count) ' generates index in the range 0 .. Count - 1
txtFront.Text = dt.Rows(index)(2).ToString()
txtBack.Text = dt.Rows(index)(3).ToString()