【发布时间】:2016-12-14 17:14:32
【问题描述】:
我有一个用于搜索数据库的组合框。下拉列表将显示用户正在搜索的内容是否有匹配的项目,如果没有,它将收回。但是,当我的代码将 DroppedDown 值更改为 False 时,我会立即收到“ArgumentOutOfRangeException”。
该错误还包括“附加信息:InvalidArgument='0' 的值对'index' 无效。”
我不确定发生了什么,因为这是我第一次尝试使用组合框并自动更新它们。
'Search box - Text Update Event
Private Sub searchBoxCB_TextUpdate(sender As Object, e As EventArgs) Handles searchBoxCB.TextUpdate
'Begin search when user types
searchBoxCB.Items.Clear()
'Check if search has numbers in it
Dim letters() As Char = searchBoxCB.Text
Dim noNumbers As Boolean = True
For Each c As Char In letters
If (IsNumeric(c)) Then
noNumbers = False
End If
Next
'Only search if no numbers
If (noNumbers) Then
searchDataPerson(searchBoxCB.Text, "Person1")
searchDataPerson(searchBoxCB.Text, "Person2")
End If
searchBoxCB.SelectionStart = searchBoxCB.Text.Length + 1 'Move cursor to end
Cursor.Current = Cursors.Default
End Sub
'Search PERSON operation
Private Sub searchDataPerson(input As String, person As String)
Dim itemAdded As Boolean = False
myConnection.Open()
Dim str As String = "SELECT * FROM AllEmployeeDirectory WHERE " + person + " Like """ + input + "%""" 'Searches for NAMES beginning with input
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) '*
dr = cmd.ExecuteReader '*
'Reads through all data
While dr.Read
searchBoxCB.DroppedDown = True
searchBoxCB.Items.Add(dr(person) + " - " + dr("Desk"))
itemAdded = True
End While
If (Not itemAdded) Then
searchBoxCB.DroppedDown = False 'ERROR OCCURS HERE
End If
myConnection.Close()
End Sub
【问题讨论】:
-
我感觉这可能是您的操作顺序。由于您没有发布任何内容,因此我无法确认。
-
我对扎格勒先生的好感有好感。
-
我对您将代码发布在外部网站上而不是作为您的问题的一部分这一事实有一种不好的感觉。 :-(
-
我刚开始使用 Stackoverflow,所以我对它的所有方面都不熟悉,抱歉。当我在做其他事情时,我必须快速获取代码。将尝试尽快将其放入问题中。
-
好了,代码已添加到问题中:)
标签: vb.net visual-studio