Vb.net 使用bindingsouce通过文本框筛选DataGridView

Vb.net 使用bindingsouce通过文本框筛选DataGridView,vb.net,Vb.net,我想在C#和SQLite中搜索数据网格视图,但我没有Datagridview的绑定源。我用以下代码填充Datagridview: Private Sub TxtSearch_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtSearch.TextChanged Dim bs As BindingSource = New BindingSource AccountTransactionLedge

我想在C#和SQLite中搜索数据网格视图,但我没有Datagridview的绑定源。我用以下代码填充Datagridview:

Private Sub TxtSearch_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtSearch.TextChanged

Dim bs As BindingSource = New BindingSource
AccountTransactionLedgerDetailsDataGridView.DataSource = bs
bs.Filter = String.Format("AccountName LIKE '%{0}%'", TxtSearch.Text)
AccountTransactionLedgerDetailsDataGridView.Refresh()  

End Sub

不要每次要筛选时都创建新的
BindingSource
。在设计器中将BindingSource添加到表单中,然后在首次绑定时使用它,例如

myDataAdapter.Fill(myDataTable)
myBindingSource.DataSource = myDataTable
myDataGridView.DataSource = myBindingSource
那么您只需要一行即可进行筛选:

myBindingSource.Filter = String.Format("AccountName LIKE '%{0}%'", TxtSearch.Text)
编辑:

我刚刚测试了这段代码(您也可以这样做),它完全按照预期工作,即完全按照您的需要:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim table As New DataTable

    table.Columns.Add("Rank", GetType(String))

    With table.Rows
        .Add("First")
        .Add("Second")
        .Add("Third")
        .Add("Fourth")
        .Add("Fifth")
        .Add("Sixth")
        .Add("Seventh")
        .Add("Eighth")
        .Add("Ninth")
        .Add("Tenth")
    End With

    BindingSource1.DataSource = table
    DataGridView1.DataSource = BindingSource1
End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    BindingSource1.Filter = $"Rank LIKE '%{TextBox1.Text}%'"
End Sub

谢谢你的夸奖。但同样的问题又发生了什么问题?你在帖子中说你想在C#中发布,但你是在vb.net中发布的。你想把这段代码放到C#项目中吗?此外,如果您在VB.Net中执行此操作,您是否可以根据jmchilinney的建议编辑您的帖子并添加新代码,并解释发生了什么?@jayamanickam一个假设问题可能是,您仍然在textchanged事件中执行所有这些操作,而您只应该在textchanged事件中使用过滤器。其他3行应该类似于form_load,这样您就可以填充dgv,然后根据您在TxtSearch文本框中输入的内容进行过滤。Im已经绑定了datagridview。按照你的指示,我这样做了,但还是什么也不会发生。如果你像我在这里展示的那样做,那么它就会工作。如果它不起作用,你就不能像我在这里展示的那样。如果你不告诉我们你在做什么,我们就不能告诉你出了什么问题。编辑您的问题,并向我们显示您用于检索数据和绑定网格的代码,以及您当前用于筛选的代码。空网格的图像对任何人都没有帮助。如果您已经更改了代码,那么我们需要查看新代码,以便能够找出它的错误。如果您没有更改代码,那么很明显这就是问题所在。我已经解释了该做什么,并提供了代码示例。下一步是让你真正去做。