0

我过滤了我的 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。我确定我看错了,所以我需要一点帮助。

我究竟做错了什么?

谢谢!

4

1 回答 1

0

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

于 2013-10-04T22:56:04.483 回答