примечание: все данные столбца хранится как NVARCHARФильтрация DataGridView VB
Моя функция поиска продолжает давать мне ошибки, которые я не понимаю. В принципе, у меня есть comboBox, где пользователь может выбрать фильтрацию поиска для определенного столбца в datagridview, затем они могут ввести поиск в текстовое поле и нажать кнопку для поиска.
Типы ошибок, которые я получаю: Ошибка синтаксиса: Отсутствует операнд после оператора «Родной». // Я набрал текстовое поле поиска «Bold Native» и использовал фильтр столбцов «Films» Невозможно выполнить операцию «Like» на System.String и System.Int32. // Я набрал в поиске текстовое поле «1979» и использовали колонку фильтра «Год»
Очень простой код, просто большой, если/ElseIf заявление для каждого столбца базы данных (извините черточки):
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
--If ComboBox1.Text = " No Filter " Then
----Me.FilmsBindingSource.Filter = Me.FilmsBindingSource.Filter = "Films LIKE " + TbFilter.Text + "% OR Actors LIKE " + TbFilter.Text + "% OR Directors LIKE " + TbFilter.Text + "% OR Writers LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Films" Then
----Me.FilmsBindingSource.Filter = "Films LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Year" Then
----Me.FilmsBindingSource.Filter = "Year LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Duration" Then
----Me.FilmsBindingSource.Filter = "Duration LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Actors" Then
----Me.FilmsBindingSource.Filter = "Actors LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Directors" Then
----Me.FilmsBindingSource.Filter = "Directors LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Writers" Then
----Me.FilmsBindingSource.Filter = "Writers LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Own It?" Then
----Me.FilmsBindingSource.Filter = "Own It? LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Seen it It?" Then
----Me.FilmsBindingSource.Filter = "Seen It? LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Rating" Then
----Me.FilmsBindingSource.Filter = "Rating LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Top 10" Then
----Me.FilmsBindingSource.Filter = "Top 10 LIKE " + TbFilter.Text
--ElseIf ComboBox1.Text = "Misc" Then
----Me.FilmsBindingSource.Filter = "Misc LIKE " + TbFilter.Text
--End If
End Sub
Я пытаюсь найти лучший способ фильтровать/искать, но я пока не придумал никаких решений. Есть идеи?
Что об этом: Private Function ApplyFilter (filterText As String) Dim filterString As String = String.Format ("{0} LIKE {1}", ComboBox1.Text, filterText) Me.FilmsBindingSource.Filter = filterString Конечная функция – majjam
Используете ли вы данные для заполнения сетки? Вам нужно использовать фильтр? – NoChance