我们如何使用BindingSource.Filter属性来获取行数30到50的行

时间:2010-12-30 05:02:38

标签: c# .net filter datatable dataset

我正在使用c#,datatable和bindingsource控件。 如果我们在数据集中有一个名为Recordsn的列名,那么我们可以按如下所示进行过滤。

bindingSource1.Filter = "Recordsn >= 30 and Recordsn <= 50" ;

但是,在某些情况下,我没有使用Recordsn列。由于Recordsn只是行数,我相信我们可以在不必在数据集中插入Recordsn列的情况下进行过滤,并且仍然可以将行过滤到获取从某个起始行到结束行的行。   有办法吗?   谢谢。   如果在bindingsource上不可能,有没有办法在datatable上执行此操作   注意:我使用30和50只是为了使问题更简单,它可以是任何范围。

1 个答案:

答案 0 :(得分:0)

设置 BindingSource.Filter 属性只是将该过滤器字符串值传递到 IBindingListView ,该 IBindingListView 是附加到 BindingSource 的源。 Filter 字符串的格式取决于实现 IBindingListView 的对象。

当您使用 DataSet 作为源时,这意味着您实际上是绑定到附加到特定 DataTable DataView DataSet 。查看{em> DataView.RowFilter 属性的MSDN,似乎无法过滤行数。

简而言之,答案是否定的,你不能按需要做。要解决这个问题,您可以创建自己的 DataView DataTable 之间的过滤类,并限制它公开的行。