Как создать автозаполнение ComboBox с помощью SQLite Data Reader - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть два поля со списком, подобные этому

enter image description here

Мне нужно создать функцию автозаполнения для первого поля со списком.Должен быть указан EmployeeID, если в поле «Поиск» указано «Employee-Number».Аналогично, в поле «Имя сотрудника» должно быть указано «Имя сотрудника» и «Фамилия».

Как я могу это сделать?Я понятия не имею, я делаю это впервые.Я использую SQLite, Visual Studio 2010.

  Dim mySelectQuery As String = "SELECT " & Search & " FROM EmployeeTable WHERE Status LIKE '" & Status & "'"
        Dim myConnString As String = "Data Source=" & Application.StartupPath & "\Database\SimpleDB.db3"
        Dim sqConnection As New SQLiteConnection(myConnString)
        Dim sqCommand As New SQLiteCommand(mySelectQuery, sqConnection)
        sqConnection.Open()

        Try
            ' Always call Read before accessing data.
            Dim sqReader As SQLiteDataReader = sqCommand.ExecuteReader()
            Dim j As Integer = sqReader.FieldCount
            While sqReader.Read()

'''''''''''''''''''''''Here, Don't know how to list the items from the query reult into the combo-box
                End While

            'Close Reader after use
            sqReader.Close()

        Catch ex As Exception
            'Show Message on Error
            MsgBox(ex.ToString)
        Finally
            'At Last Close the Connection
            sqConnection.Close()
        End Try

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

Я не совсем уверен, что вы спрашиваете, но я думаю, что это так.В измененном событии SelectedIndex у вас будет что-то похожее на код ниже.Вы можете добавить оператор If, чтобы проверить, к чему вы обращаетесь, и соответствующим образом скорректировать свой запрос.

Dim dt as New DataTable

Try
            Using sqlConn

            sqlConn.Open()

                Using cmd As New SqlCommand("your query")

                    cmd.Connection = sqlConn
                    cmd.CommandType = CommandType.Text


                   Dim reader as SqlDataReader = cmd.ExecuteReader()
                   dt.Load(reader)
                End Using


        End Using
    Catch ex As SqlException
        Throw New Exception(ex.Message)
    End Try

With yourComboBox
     .DataSource = dt
     .DataValueField = "columName you want to be the value of the item"
     .DataTextField = "columnName of the text you want displayed"
End With
0 голосов
/ 25 апреля 2011

Обратите внимание на следующие свойства для поля со списком: AutoCompleteMode, AutoCompleteSource, AutoCompleteCustomSource.

Выберите соответствующий AutoCompleteMode.Подробнее о различных режимах см. На по этой ссылке .Для AutoCompleteSource выберите ListItems (в этом случае источником будут элементы ComboBox) или CustomSource.Если вы выбираете CustomSource, установите соответствующий источник в качестве значения свойства AutoCompleteCustomSource ComboBox.

Это должно предоставить вам достаточно информации, чтобы выполнить то, что вы ищете.Другие перечисленные вами требования - например, получение данных из базы данных SQLite или переключение между именем сотрудника и номером сотрудника - не влияют на работу с функцией автозаполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...