使用列表框搜索算法
Searching Algorithm using listbox
我正在尝试使用访问数据库制作搜索框/搜索栏。我希望代码搜索记录,然后在我搜索另一条记录时 remove/hide 来自列表框的记录。我的程序 belows 搜索记录并显示它,但是几乎没有问题。
- 再次搜索时不删除/隐藏记录。
- 如果记录不在数据库中或搜索框为空,则不响应。
Dim con As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=C:\Users\jacob\Desktop\MS Office\project.mdb")
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM tblProduct WHERE productID LIKE '" & txtSearch_Bar.Text & "'", con)
con.Open()
Dim sdr As OleDbDataReader = cmd.ExecuteReader()
While (sdr.Read())
lstbSearchResult.Items.Add(sdr("ProductID"))
End While
我也想把它做成一个动态搜索栏。
我认为您的第一个要求已在评论中得到解决。对于您的第二个要求,在您的 While 循环之前添加以下内容。
If Not sdr.HasRows Then
MessageBox.Show("No Matches")
Exit Sub
End If
我正在尝试使用访问数据库制作搜索框/搜索栏。我希望代码搜索记录,然后在我搜索另一条记录时 remove/hide 来自列表框的记录。我的程序 belows 搜索记录并显示它,但是几乎没有问题。
- 再次搜索时不删除/隐藏记录。
- 如果记录不在数据库中或搜索框为空,则不响应。
Dim con As New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=C:\Users\jacob\Desktop\MS Office\project.mdb")
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM tblProduct WHERE productID LIKE '" & txtSearch_Bar.Text & "'", con)
con.Open()
Dim sdr As OleDbDataReader = cmd.ExecuteReader()
While (sdr.Read())
lstbSearchResult.Items.Add(sdr("ProductID"))
End While
我也想把它做成一个动态搜索栏。
我认为您的第一个要求已在评论中得到解决。对于您的第二个要求,在您的 While 循环之前添加以下内容。
If Not sdr.HasRows Then
MessageBox.Show("No Matches")
Exit Sub
End If