Vb.net BindingSource筛选器和查询

Vb.net BindingSource筛选器和查询,vb.net,bindingsource,Vb.net,Bindingsource,我过滤了我的BindingSource,可以注意到gridview控件绑定在。。。但是,当我手动迭代时,并没有得到预期的结果。代码如下: CollectorAlertsBindingSource.Filter = "CollectorAlert_Name='" & nameCA & "'" Me.CollectorAlertsTableAdapter.Fill(Me.PWDS.CollectorAlerts) Dim CARows As DataRow

我过滤了我的BindingSource,可以注意到gridview控件绑定在。。。但是,当我手动迭代时,并没有得到预期的结果。代码如下:

    CollectorAlertsBindingSource.Filter = "CollectorAlert_Name='" & nameCA & "'"
    Me.CollectorAlertsTableAdapter.Fill(Me.PWDS.CollectorAlerts)

    Dim CARows As DataRow

    For Each CARows In PWDS.CollectorAlerts.Rows
        txtCollectorAlertName.Text = CARows("CollectorAlert_Name").ToString
        txtTimedInterval.Text = CARows("CollectorAlert_TriggerInterval").ToString
    Next
当我单步执行代码时,我可以判断ROWS.Count=3。表中总共有3行,但筛选器应将其筛选为1行。我肯定我完全错了,所以我需要一些帮助

我做错了什么


谢谢

您过滤了BindingSource,但随后没有使用它—您直接从datatable中提取行。应用筛选器时,bs实际上通过其自己的DataView进行筛选(这是位于datatable顶部的一个层。您可以在调试器中将其视为bs的“syncroot”属性。)表本身仍然包含所有行。

我看不到任何。DefaultView:(不在CollectorAlerts Datatable上。当我尝试获取错误时:“rows”不是System.Data.DataView的成员我也尝试使用DataRowView迭代DefaultView,但结果相同。当我中断并查看DefaultView.Count时,我得到3:)我应该在那里添加一个行过滤器吗?或者这是更好的方法吗?好的,我回答了我自己的问题。我需要在defaultview中添加一个行过滤器。我不确定为什么这是正确的方法,但它起了作用。谢谢你的帮助!!你能在你的答案中添加一个行过滤器,这样我就可以标记为已解决了吗?@cb seo我已经编辑并更正了我的答案,还有limi我想这不是我最好的回答,虽然它包含了正确答案的要点