使用组合框VB.NET将OleDb记录读入文本框
我是编程新手。我试图完成的是在VB.NET中填充9个文本框,使用组合框(CbbNaamfirma)读取访问表TblKlanten。我不能让它为我的生活工作;为了这个简单的东西我已经找了6个小时了。你们谁能帮帮我吗?我在SO.com上读过很多这样的帖子,它们对我都不起作用。 我现在有:使用组合框VB.NET将OleDb记录读入文本框,vb.net,combobox,textbox,oledb,Vb.net,Combobox,Textbox,Oledb,我是编程新手。我试图完成的是在VB.NET中填充9个文本框,使用组合框(CbbNaamfirma)读取访问表TblKlanten。我不能让它为我的生活工作;为了这个简单的东西我已经找了6个小时了。你们谁能帮帮我吗?我在SO.com上读过很多这样的帖子,它们对我都不起作用。 我现在有: Private Sub CbbNaamfirma_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Han
Private Sub CbbNaamfirma_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbbNaamfirma.SelectedIndexChanged
Dim Connection As New OleDb.OleDbConnection
Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Application.StartupPath & "\Database.accdb.'"
Try
Connection.Open()
Dim query As String
query = "SELECT Adres FROM TblKlanten WHERE [Naam firma] = ' " & CbbNaamfirma.Text & " ' "
Dim cmd As New OleDbCommand(query, Connection)
Dim Reader As OleDbDataReader = cmd.ExecuteReader
Reader = cmd.ExecuteReader
While Reader.Read
TxtAdresprev.Text = Reader.GetString("Adres")
End While
Connection.Close()
Catch ex As OleDbException
MessageBox.Show(ex.Message)
Finally
Connection.Dispose()
End Try
End Sub
先谢谢你。希望代码块结果正常?首先要更改的是使用参数化查询从数据库中读取数据。请注意,代码找不到任何内容,因为在combobox的值之前和之后都添加了空格 然后,您需要开始在一次性对象周围使用using语句,以确保正确关闭和处理 最后,OleDbDataReader中的GetString方法希望在返回的字段列表中有一个数字索引,而不是字段的名称
Private Sub CbbNaamfirma_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbbNaamfirma.SelectedIndexChanged
Dim cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
Application.StartupPath & "\Database.accdb"
Dim query = "SELECT Adres FROM TblKlanten WHERE [Naam firma] = ?"
Using Connection = New OleDb.OleDbConnection(cnString)
Using cmd = New OleDbCommand(query, Connection)
Try
Connection.Open()
cmd.Parameters.AddWithValue("@p1", CbbNaamfirma.Text)
Using Reader = cmd.ExecuteReader
While Reader.Read
Dim posAdres = Reader.GetOrdinal("Adres")
TxtAdresprev.Text = Reader.GetString(posAdres)
.... other text boxes for other fields here.....
End While
End Using
Catch ex As OleDbException
MessageBox.Show(ex.Message)
End Try
End Using
End Using
End Sub
此外,您的连接字符串似乎是错误的。不需要引用,而且名字后面的错误点是错误的先生,你救了我的命。我怎样才能以任何有意义的方式感谢你呢?如果我的回答有帮助,你可以接受它和/或投赞成票。(当系统允许你这么做时)再次阅读…再见…VoteUp需要15个信誉…另外,我有一个新问题。我为文本字段输入了剩余的代码,但它显示的是txtdresprev.text中的posAdres..怎么办?请用固定的代码发布一个新问题(接受和向上投票是两件不同的事情)