2017-08-02 15 views
0

私はsearchboxを以下の画像のように持っています。私が手紙や数字を入力すると、gridviewのデータには、searchboxに入力したものと一致するデータが表示されます。私はすでにそのコードを持っていますが、それは1つの列のみであり、最初は動作しますが、他のデータを追加すると、まったく動作しません。あなたはそれのために良いコードをお勧めしますか?ありがとうございました! :)フィルタは、テキストボックスを使用してDatagridviewで検索します

ところで、ここではフィルタのための私のコードだ:

Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged 
      EmployeeProfileBindingSource.Filter = String.Format("[Employee_Lname] Like '{0}%'", 
    Me.txtSearch.Text.Trim()) 

     End Sub 

enter image description here

Image here

+0

'EmployeeProfileBindingSource'は何ですか?それは 'Datagridview'の' DataSource'ですか? –

+0

私の答えを見て、それが助けてくれることを願って:) –

+0

それはDatagridviewのソースです:) – FrustratedProgrammer

答えて

0

あなたは別のキーワードで検索しようとすると、エラーを取り除く必要があり、これを試してみてくださいここでは、Employee_IDEmployee_Fnameの列を入力して、どのように動作するかを示します:

Public Class Form1 
    Private dtTableGrd As DataTable 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     DataGridView1.DataSource = EmployeeProfileBindingSource 
     dtTableGrd = EmployeeProfileBindingSource 
    End Sub 

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged 
     dtTableGrd.DefaultView.RowFilter = "Employee_Fname Like '%" & TextBox1.Text & "%'" 
    End Sub 
End Class 

これ以上の列を検索する必要がある場合は、上記のフィルタリングコードをコピーして貼り付けて、列の名前を変更してください。

最後に、私はそれはあなたを助けることを願って、それがないなら、私に知らせてください:)

+0

私は申し訳ありませんが、上記のコードに構文エラーがあると思いますか? dtTable.Columns.AddRange({新規のDataColumnと{.ColumnName = "EMPLOYEE_ID"、.AutoIncrement =真、.AutoIncrementSeed = 1、.AutoIncrementStep = 1}、 新規のDataColumn( "Employee_Fname")}、 新規のDataColumn( "Public Sub addRange(..." – FrustratedProgrammer

+0

@FrustratedProgrammer、はい、申し訳ありませんが、それは私のせいですが、今修正しようとしました。私は '私は私の答えを編集しました。 –

+0

@ FrustratedProgrammer( 'Employee_Fname') 'の後に' '' '(Employee_Fname") 'の後に' '私はこの行を変更しました:' dtTableGrd.DefaultView.RowFilter = "Employee_Fname '%'&TextBox1.Text& > [Clip](https://www.dropbox.com/s/vh80dj6pozozy2t/Clip_2.mp4?dl=0) –

関連する問題