如何从 vb .net 中的 ms access table 获取下一条记录
how to fetch next record from ms access table in vb .net
我正在 vb .net 中使用 MCQ 应用程序,我想从名为 Q_A 的 MS ACCESS 数据库 table 中获取每条记录...这是我的代码
Dim i As Integer = 0
con = New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MCQ.accdb"
Try
Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM Q_A ", con)
If ds.Tables("Q_A").Rows.Count > 0 Then
da.Fill(ds, "Q_A")
lblQno.Text = ds.Tables("Q_A").Rows(i).Item(0).ToString()
lblQuestion.Text = ds.Tables("Q_A").Rows(i).Item(1).ToString()
rbtn1.Text = ds.Tables("Q_A").Rows(i).Item(2).ToString()
rbtn2.Text = ds.Tables("Q_A").Rows(i).Item(3).ToString()
rbtn3.Text = ds.Tables("Q_A").Rows(i).Item(4).ToString()
rbtn4.Text = ds.Tables("Q_A").Rows(i).Item(5).ToString()
i = i + 1
End If
con.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
但我无法使用此代码获取下一行..请帮助我..提前致谢
此代码在哪里 运行?从按钮点击?上面的代码似乎只显示最后一行,然后抛出异常,因为在 i 大于行数后索引将越界。
第 i 个整数需要在更广泛的范围内声明,并且每次移动到下一行时,请确保您在继续之前没有超出行数范围。
例如,如果您通过单击按钮执行此操作,您将:
Dim i as integer = 0
Do your database query and populate your dataset
Inside your Button Click Event
if i < rowcount then
lblQno.Text = ds.Tables("Q_A").Rows(i).Item(0).ToString()
lblQuestion.Text = ds.Tables("Q_A").Rows(i).Item(1).ToString()
rbtn1.Text = ds.Tables("Q_A").Rows(i).Item(2).ToString()
rbtn2.Text = ds.Tables("Q_A").Rows(i).Item(3).ToString()
rbtn3.Text = ds.Tables("Q_A").Rows(i).Item(4).ToString()
rbtn4.Text = ds.Tables("Q_A").Rows(i).Item(5).ToString()
i = i + 1
end if
由于 ds 已填充并且 i 是在更广泛的范围内声明的,因此可以在此子中访问它,您需要做的就是检查以确保还有剩余的行,如果有,则显示该行。一旦它显示为下一行递增 i,这样当您再次单击该按钮时,它具有下一行索引的值。
我正在 vb .net 中使用 MCQ 应用程序,我想从名为 Q_A 的 MS ACCESS 数据库 table 中获取每条记录...这是我的代码
Dim i As Integer = 0
con = New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MCQ.accdb"
Try
Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM Q_A ", con)
If ds.Tables("Q_A").Rows.Count > 0 Then
da.Fill(ds, "Q_A")
lblQno.Text = ds.Tables("Q_A").Rows(i).Item(0).ToString()
lblQuestion.Text = ds.Tables("Q_A").Rows(i).Item(1).ToString()
rbtn1.Text = ds.Tables("Q_A").Rows(i).Item(2).ToString()
rbtn2.Text = ds.Tables("Q_A").Rows(i).Item(3).ToString()
rbtn3.Text = ds.Tables("Q_A").Rows(i).Item(4).ToString()
rbtn4.Text = ds.Tables("Q_A").Rows(i).Item(5).ToString()
i = i + 1
End If
con.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
但我无法使用此代码获取下一行..请帮助我..提前致谢
此代码在哪里 运行?从按钮点击?上面的代码似乎只显示最后一行,然后抛出异常,因为在 i 大于行数后索引将越界。
第 i 个整数需要在更广泛的范围内声明,并且每次移动到下一行时,请确保您在继续之前没有超出行数范围。
例如,如果您通过单击按钮执行此操作,您将:
Dim i as integer = 0
Do your database query and populate your dataset
Inside your Button Click Event
if i < rowcount then
lblQno.Text = ds.Tables("Q_A").Rows(i).Item(0).ToString()
lblQuestion.Text = ds.Tables("Q_A").Rows(i).Item(1).ToString()
rbtn1.Text = ds.Tables("Q_A").Rows(i).Item(2).ToString()
rbtn2.Text = ds.Tables("Q_A").Rows(i).Item(3).ToString()
rbtn3.Text = ds.Tables("Q_A").Rows(i).Item(4).ToString()
rbtn4.Text = ds.Tables("Q_A").Rows(i).Item(5).ToString()
i = i + 1
end if
由于 ds 已填充并且 i 是在更广泛的范围内声明的,因此可以在此子中访问它,您需要做的就是检查以确保还有剩余的行,如果有,则显示该行。一旦它显示为下一行递增 i,这样当您再次单击该按钮时,它具有下一行索引的值。