亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用DataReader高效率分頁

2019-11-17 03:36:27
字體:
來源:轉載
供稿:網友

自從用Sql2005版本以后一直用ROW_NUMBER()分頁,最近一個項目維護sqlserver是2000,沒辦法重寫了分頁。寫完測試分析比ROW_NUMBER()明顯快啊

分享一下兩種方式的分頁代碼

1.用DataReader分頁

    /// <summary>

        /// PageList for DataReader
        /// </summary>
        /// <param name="connectionString"></param>
        /// <param name="sql"></param>
        /// <param name="pageSize"></param>
        /// <param name="curPage"></param>
        /// <param name="pageCount"></param>
        /// <param name="count"></param>
        /// <param name="cmdParms"></param>
        /// <returns></returns>
        public DataTable PageListReader(string connectionString, string sql, int pageSize, int curPage, out int pageCount, out int count, params DbParameter[] cmdParms)
        {
            int first = 0;
            int last = 0;
            int fieldCount = 0;
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = conn.CreateCommand();
                PRepareCommand(cmd, conn, null, CommandType.Text, sql, cmdParms);
                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                DataTable dt = new DataTable();
                fieldCount = reader.FieldCount;
                for (int i = 0; i < fieldCount; i++)
                {
                    DataColumn col = new DataColumn();
                    col.ColumnName = reader.GetName(i);
                    col.DataType = reader.GetFieldType(i);
                    dt.Columns.Add(col);
                }
                count = 0;
                first = (curPage - 1) * pageSize+1;
                last = curPage * pageSize;
                while (reader.Read())
                {
                    count++;
                    if (count >= first && last >= count)
                    {
                        DataRow r = dt.NewRow();
                        for (int i = 0; i < fieldCount; i++)
                        {
                            r[i] = reader[i];
                        }
                        dt.Rows.Add(r);
                    }
                }
                reader.Close();
                pageCount = Convert.ToInt32(Math.Ceiling((double)count / (double)pageSize));
                return dt;
            }
        }
 

2.用ROW_NUMBER()分頁

    /// <summary>

        /// 分頁獲取數據(Sql Server 2005) for ROW_NUMBER()
        /// </summary>
        /// <param name="connectionString">數據庫鏈接</param>
        /// <param name="sql">獲取數據集的Sql</param>
        /// <param name="fldSort">排序字段,可以多個</param>
        /// <param name="pageSize">每頁顯示多少條</param>
        /// <param name="curPage">當前頁碼</param>
        /// <param name="pageCount">總頁數</param>
        /// <param name="count">總記錄數</param>
        ///<param name="cmdParms">DbParameter</param>
        /// <returns>DataTable</returns>
        public DataTable PageList(string connectionString, string sql, string fldSort, int pageSize, int curPage, out int pageCount, out int count, params DbParameter[] cmdParms)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.AppendFormat(@"SELECT count(0) from {0} as MyTableCount;
                                    select * from (
                                    SELECT ROW_NUMBER() OVER(order by {1}) RowNumber,*
                                    from {0} mytable
                                    ) mytable2
                                    where RowNumber between {2} and {3}"
                               , sql, fldSort, Convert.ToString((curPage - 1) * pageSize + 1), Convert.ToString((curPage * pageSize)));

            DataSet ds = ExecuteQuery(connectionString, CommandType.Text, strSql.ToString(), cmdParms);
            count = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
            pageCount = Convert.ToInt32(Math.Ceiling((double)count / (double)pageSize));
            return ds.Tables[1];
        }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲sss综合天堂久久| 欧美在线视频播放| 久久精品国产v日韩v亚洲| 亚洲a在线观看| 中文字幕在线看视频国产欧美在线看完整| 亚洲欧洲日本专区| 久久久999国产| 欧美激情在线有限公司| 欧美日韩在线视频首页| 欧美成人国产va精品日本一级| 亚洲精品视频网上网址在线观看| 日韩激情视频在线播放| 日韩av最新在线观看| 亚洲人成电影在线| 午夜欧美大片免费观看| 久久久www成人免费精品| 欧美一级淫片丝袜脚交| 国产精品精品久久久| 夜夜嗨av色综合久久久综合网| 日韩欧美国产网站| 国产精品尤物福利片在线观看| 日韩男女性生活视频| 成人有码在线视频| 国产精品视频最多的网站| 亚洲理论电影网| 正在播放亚洲1区| 精品国产福利在线| 91免费看视频.| 日韩成人小视频| 美女黄色丝袜一区| 国产一区二区免费| 欧美日韩国产成人高清视频| 国产欧美日韩丝袜精品一区| 美女精品视频一区| 久久91超碰青草是什么| 国产z一区二区三区| 亚洲自拍偷拍色图| 欧美日韩国产激情| 欧美极品美女电影一区| 亚洲黄色片网站| 在线观看国产精品91| 国内精品久久久久久久| 精品视频久久久久久久| 在线播放日韩欧美| 日韩小视频网址| 91精品国产综合久久香蕉的用户体验| 5566日本婷婷色中文字幕97| 日韩美女毛茸茸| 日韩免费观看在线观看| 国产精品一区二区av影院萌芽| 在线视频精品一| 久久精品欧美视频| 亚洲第一视频网| 国产精品久久久久久婷婷天堂| 欧美精品videossex88| 国产成人激情视频| 欧美激情一区二区三区高清视频| 国产日韩在线观看av| 中文字幕久久久av一区| 91精品视频专区| 亚洲精品久久视频| 98精品国产高清在线xxxx天堂| 久久久免费观看视频| 中文字幕久久久av一区| 欧美另类老肥妇| 久久久久久久久久久人体| 亚洲欧美色图片| 97在线观看免费| 美女久久久久久久| 国产69久久精品成人看| 国产精品视频大全| 国产日韩欧美在线视频观看| 亚洲国产日韩欧美在线动漫| 国产精品激情自拍| 国产精品成人免费视频| 日韩电影免费观看中文字幕| 日韩精品极品视频| 亚洲欧美在线第一页| 亚洲va久久久噜噜噜| 亚洲一区二区三区在线免费观看| 色妞一区二区三区| 欧美成人精品影院| 亚洲男人天堂网| 亚洲国产成人精品久久| 亚洲午夜激情免费视频| 色偷偷偷综合中文字幕;dd| 91精品在线看| 久久精品成人动漫| 欧美激情国产日韩精品一区18| 欧美黄色片免费观看| 久久人人97超碰精品888| 日韩在线精品视频| 国产成人涩涩涩视频在线观看| 日韩精品亚洲视频| 亚洲少妇激情视频| 国产精品普通话| 亚洲欧洲自拍偷拍| 九九视频这里只有精品| 国产精品日韩一区| 久久久久久久久综合| 国产成人精品视频在线观看| 色小说视频一区| 伊人av综合网| 欧洲亚洲免费在线| 欧美亚洲在线视频| 国产亚洲精品美女久久久| 亚洲成色777777在线观看影院| 国产视频精品一区二区三区| 久久久亚洲精品视频| 欧美极度另类性三渗透| www.亚洲天堂| 91精品久久久久久| 日韩电影免费观看在线观看| 日韩专区在线观看| 亚洲最大av网| 欧美午夜女人视频在线| 日韩大片免费观看视频播放| 亚洲伊人久久大香线蕉av| 国产美女扒开尿口久久久| 精品国产91乱高清在线观看| 国产精品久久久久福利| 亚洲欧美日韩精品久久亚洲区| 久久精品免费播放| 日韩中文视频免费在线观看| 成人中心免费视频| 国产精品6699| 国产精品专区一| 欧美在线视频免费| 久久久国产精品免费| 精品国产乱码久久久久久天美| 韩国美女主播一区| 久久这里只有精品99| 久久久久久久久网站| 久久精品视频在线| 精品一区二区电影| 日本亚洲精品在线观看| 国产午夜精品美女视频明星a级| 久青草国产97香蕉在线视频| 国语自产精品视频在免费| 亚洲天堂免费在线| 国产成人97精品免费看片| 岛国av在线不卡| 中文字幕亚洲无线码在线一区| 久久资源免费视频| 欧美极品欧美精品欧美视频| 日韩av电影国产| 夜夜嗨av色综合久久久综合网| 久久天堂电影网| 午夜精品一区二区三区视频免费看| 九九热这里只有在线精品视| 精品福利在线视频| 91九色综合久久| 国产亚洲欧美aaaa| 欧美一区二区影院| 欧美日韩亚洲系列| 国产精品电影一区| 97香蕉超级碰碰久久免费的优势| 亚洲欧美日韩精品| 欧美日韩在线看| 国产一区二区在线播放| 狠狠色狠狠色综合日日五| 人体精品一二三区| 亚洲人午夜色婷婷| 国产日韩精品综合网站|