首页 > 解决方案 > 如何读取数据库中的随机实体

问题描述

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

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

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

标签: vb.net

解决方案


在表单中添加一个随机生成器。使 shure 将其声明为 Shared,以便此生成器仅创建一次。这确保它生成唯一的随机数序列(请参阅:为什么这个随机数生成代码不起作用?)。

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()

推荐阅读