A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘煜 中级黑马   /  2012-7-15 16:52  /  1737 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C# 的DataView如何实现前N行筛选 ?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
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

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
用SQL语句查出想要的数据表,然后这个数据表绑定datagridview

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马