我正在使用vb .net中的MCQ应用程序,我想从名为Q_A的MS ACCESS数据库表中获取每条记录,这是我的代码
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
但是我无法使用此代码获取下一行..pls帮我..提前感谢
此代码在哪里运行?通过按钮单击?上面的代码似乎只显示最后一行,然后引发异常,因为在我变得比行数大之后索引将超出范围。
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,这样,当您再次单击该按钮时,它将具有下一行索引的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句