C# DataView实现前N行筛选

DataView很遗憾的一点是没有提供选择,Top N行的功能,因此只能通过自定义方法实现

后来还是解决了,看似简单其实也有几个地方值得学习的:

       public DataView SelectView(string NamePara,int TopValue)
        {
            SqlCode Scc = new SqlCode();
            DataView Dview = Scc.SelectSortBooks().DefaultView;
            string FilterR ="Name='" + NamePara + "'";
            Dview.RowFilter = FilterR;
            DataTable Dtable = Dview.Table.Clone(); //克隆DataTable 的结构,包括所有DataTable 架构和约束。
            for (int i = 0; i <Dview.Count; i++)
            {
                if (i >= TopValue)
               {
                    break;
                }
                Dtable.ImportRow(Dview[i].Row); //取前TopValue行,其他的不添加至DataTable
            }
            return new DataView(Dtable);
        }

这里实现了将一个DataView经过RowFilter处理后,再获取前N行,这里开始的DataView已经按降序排列好了。分析代码:先获得DataView的表架构用 Dview.Table,然后再克隆得到跟Dview相同的表架构和约束(包括列明,键....)。然后将整个Dview的行数循环,取你所要求的行数,这里是TopValue行,只需从0到TopValue-1行复制到我得到的克隆表里,其他的跳出,得到这个表之后,从而得到这个表的DataView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值