【发布时间】:2016-08-22 14:02:48
【问题描述】:
我在填充组合框时遇到问题。 我可以用一个简单的选择查询来填写。 现在我想用包含 where 命令的查询填充组合框。我尝试了几种解决方案,但都没有奏效。 如何使用带有 where 语句的查询填充组合框?
到目前为止我的代码是:
Public Function vulComboboxTesten(box As ComboBox, naam As String) As ComboBox
box.Items.Clear()
box.Items.Add(" ")
Dim query As String
query = "Select Sector from Onderaannemers where Naam_firma = @naam "
Debug.WriteLine(query)
Dim command As OleDbCommand
command = New OleDbCommand(query, connectie)
command.Connection.Open()
Dim datareader As OleDbDataReader
datareader = command.ExecuteReader
While datareader.Read
Dim item As New ComboBoxItem
item.Content = datareader("Sector")
box.Items.Add(item)
End While
command.Connection.Close()
Return box
End Function
【问题讨论】:
-
Select Sector from Onderaannemers where Naam_firma = @naam这是你的问题。您在查询中添加了一个参数,但从未在查询中包含一个参数... -
那应该怎么做呢?
-
类似这样的:
command.Parameters.Add(New OleDbParameter("@naam", naam-yourvalue))在command = New OleDbCommand(query, connectie)之后执行此操作。另一方面,在访问数据库时处理您建立的连接很重要,我建议将您的命令和连接包装在 using 语句中以确保它们被处理。 -
谢谢,它成功了。不敢相信我自己没有弄清楚。我使用相同的方法填充数据集。