【发布时间】:2014-03-24 10:10:27
【问题描述】:
目前我有 5 个文本框,我希望从 Access 数据库中一列的前 5 行填充它们。
我尝试了几个不同的 SQL 查询,但都没有成功。
这是我第一个盒子的工作代码:
Try
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\Response.mdb;")
Dim cmd As New OleDbCommand
con.Open()
cmd.Connection = con
cmd.CommandText = "SELECT * FROM question"
cmd.Prepare()
Dim Trace = cmd.ExecuteReader
With Trace
.Read()
q1txt.Text = .Item("questiontext")
.Close()
End With
Catch
End Try
该代码工作得很好,但是当我尝试对此进行扩展以包含下 4 个时,我无法让它工作或找到任何可以帮助我的信息。
我尝试编写一个不同的查询来使用
填充每个框select * from question limit n-1, 1
和
select top 1 field from question
在所有抛出一个或另一个异常的其他几十个中。
有谁知道改变我的代码的方法,以便我可以有效地告诉它:
SELECT TOP 5 FROM question
q1txt.Text = .item("ROW1")
q2txt.Text = .item("ROW2")
q3txt.Text = .item("ROW3")
q4txt.Text = .item("ROW4")
q5txt.Text = .item("ROW5")
感谢史蒂夫帮助我解决这个问题!我现在使用的代码在这里:
Dim boxes = {q1txt, q2txt, q3txt, q4txt, q5txt}
Dim index As Integer = 0
Using con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\Response.mdb;")
Using cmd = New OleDbCommand("SELECT TOP 5 * FROM question", con)
con.Open()
Using Trace = cmd.ExecuteReader
For Each item In boxes
With Trace
.Read()
boxes(index).Text = .Item("questiontext")
index += 1
End With
Next
End Using
End Using
End Using
【问题讨论】:
标签: sql vb.net visual-studio-2010 textbox