Member 10804809 Ответов: 1

Как найти все столбцы таблицы с одним значением в текстовом поле, VB.NET


У меня есть vb.net с приложением доступа к базе данных.
У меня есть несколько столбцов, например A1, A2, A3
Для поиска частичного значения в IDtxt в столбце A1 я использую этот код.

Private Sub btnSearchID_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchID.Click
        Me.VerifiedHPReportBindingSource.Filter = "[A1] = '" & Me.IDtxt.Text & "'"
    End Sub


Как я могу найти конкретное значение в столбце A1,A2,A3?

Я использую databindingsource для повторного получения значения.

Что я уже пробовал:

Я пробовал следовать кодам, но не работал

Private Sub btnSearchID_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchID.Click
        Me.VerifiedHPReportBindingSource.Filter = "[A1] = '" & Me.IDtxt.Text & "'"
        Me.VerifiedHPReportBindingSource.Filter = "[A2] = '" & Me.IDtxt.Text & "'"
        Me.VerifiedHPReportBindingSource.Filter = "[A3] = '" & Me.IDtxt.Text & "'"
    End Sub

1 Ответов

Рейтинг:
0

Richard Deeming

Вам нужно будет объединить условия фильтра в одну строку:

Me.VerifiedHPReportBindingSource.Filter = String.Format("[A1] = '{0}' Or [A2] = '{0}' Or [A3] = '{0}'", Me.IDtxt.Text)


Karthik_Mahalingam

5

Member 10804809

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

Richard Deeming

Итак, вы просто хотите изменить цвет фона текстового поля, которое используете в поиске?

Просто создайте метод для сброса цвета фона всех 60 текстовых полей. В каждом методе поиска вызовите этот метод, а затем измените цвет фона соответствующего текстового поля на что-то другое.

Member 10804809

Я разработал этот код, но как его можно применить ко всем 60 текстовым полям?
Если A1TextBox.Text = IDtxt.Тогда Текст
A1TextBox.Цвет Фона = Цвет.Красный
Еще : A1TextBox.Цвет Фона = Цвет.Белый

Конец, Если

Richard Deeming

Что-то вроде этого:

Private Sub HighlightMatch(ByVal searchValue As String)
    A1TextBox.BackColor = If(A1TextBox.Text = searchValue, Color.Red, Color.White)
    A2TextBox.BackColor = If(A2TextBox.Text = searchValue, Color.Red, Color.White)
    A3TextBox.BackColor = If(A3TextBox.Text = searchValue, Color.Red, Color.White)
End Sub

Private Sub btnSearchID_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearchID.Click
    Me.VerifiedHPReportBindingSource.Filter = String.Format("[A1] = '{0}' Or [A2] = '{0}' Or [A3] = '{0}'", Me.IDtxt.Text)
    HighlightMatch(Me.IDtxt.Text)
End Sub

Member 10804809

Получил.

Спасибо Братан
Работать отлично