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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM