Sql 从access数据库导入特定行
目前,我有5个文本框,我希望从Access数据库中列的前5行填充它们 我尝试了几个不同的SQL查询,但没有成功 以下是第一个框的工作代码:Sql 从access数据库导入特定行,sql,vb.net,visual-studio-2010,textbox,Sql,Vb.net,Visual Studio 2010,Textbox,目前,我有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
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 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
Access没有像MySql这样的限制关键字。你可以在某个栏目上点菜,然后选前5个栏目。我不知道您是否有任何可以排序的列,因此我显示的代码没有ORDERBY子句,而是按照数据库给定的顺序获取前5条记录
Dim boxes = new TextBox() {q1Text, q2Text, q3Text, q4Text, q5Text }
Dim index As Integer = 0
Using con = New OleDbConnection(".....")
Using cmd = New OleDbCommand("SELECT TOP 5 * FROM question", con)
con.Open()
Using Trace = cmd.ExecuteReader
While Trace.Read()
boxes(index).Text = Trace.Item("questiontext")
index += 1
End While
End Using
End Using
End Using
每次读取时,您都会在不同的文本框中放置不同的记录,因此我构建了一个文本框数组,并使用索引填充正确的文本框
还请注意,我在您的一次性物品周围添加了Using语句,以确保它们正确关闭和处置谢谢!我不知道你能做到。但是它没有起作用。。。它只填充第一个框。我通过在.Read()之后添加“For Each item in box”来编辑代码,但这会用顶部字段填充所有5个。啊,开始工作了!再次感谢你。将发布上面的工作代码。修复了,忘记循环读卡器该代码现在工作得很好,谢谢。我可以为每个人删除我的。非常感谢!好的,我应该警告您,这段代码实际上被锁定为要检索的控件数和行数。(如果更改TOP X值,请不要忘记向数组中添加新控件)。如果需要更改,我建议使用更合适的控件,如DataGridView
Dim boxes = new TextBox() {q1Text, q2Text, q3Text, q4Text, q5Text }
Dim index As Integer = 0
Using con = New OleDbConnection(".....")
Using cmd = New OleDbCommand("SELECT TOP 5 * FROM question", con)
con.Open()
Using Trace = cmd.ExecuteReader
While Trace.Read()
boxes(index).Text = Trace.Item("questiontext")
index += 1
End While
End Using
End Using
End Using