我过滤了我的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.我确定我在查看这完全错了,所以我需要一些帮助。
我做错了什么?
谢谢!
答案 0 :(得分:0)
您过滤了BindingSource,但之后您没有使用它 - 您直接从数据表中提取行。当你应用一个过滤器时,bs实际上是通过它自己的DataView过滤的(这是一个位于数据表顶部的层。你可以在调试器中看到它作为bs的'syncroot'属性。)表本身仍然包含其中的所有行。