国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 辦公軟件教程 > 詳細頁面

mssql access top分頁辦法

mssql access top分頁辦法

更新時間:2022-05-09 文章作者:未知 信息來源:網絡 閱讀次數:

Microsoft Office Access是由微軟發布的關系數據庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本里面被單獨出售。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發布。

 mssql access top分頁方法

雙top法相比于not in和max法,就是可以傳入一條sql語句來生成分頁sql語句,也可多字段排序;
但是有利也有弊,它要求排序字段必須構成唯一記錄,且select后的字段列表中,不允許出現與排序字段同名的字段。
雖然sql2k5及以上版本已經提供了rownum()來進行分頁處理,但是使用sql2k進行開發的還是較多的

using system;
using system.collections.generic;
using system.text;

/// <summary>
/// 構造分頁后的sql語句
/// </summary>
public static class paginghelper
{
    /// <summary>
    /// 獲取分頁sql語句,排序字段需要構成唯一記錄
    /// </summary>
    /// <param name="_recordcount">記錄總數</param>
    /// <param name="_pagesize">每頁記錄數</param>
    /// <param name="_pageindex">當前頁數</param>
    /// <param name="_safesql">sql查詢語句</param>
    /// <param name="_orderfield">排序字段,多個則用“,”隔開</param>
    /// <returns>分頁sql語句</returns>
    public static string createpagingsql(int _recordcount, int _pagesize, int _pageindex, string _safesql, string _orderfield)
    {
        //重新組合排序字段,防止有錯誤
        string[] arrstrorders = _orderfield.split(new char[] { ',' }, stringsplitoptions.removeemptyentries);
        stringbuilder sboriginalorder = new stringbuilder(); //原排序字段
        stringbuilder sbreverseo教程rder = new stringbuilder(); //與原排序字段相反,用于分頁
        for (int i = 0; i < arrstrorders.length; i++)
        {
            arrstrorders[i] = arrstrorders[i].trim();  //去除前后空格
            if (i != 0)
            {
                sboriginalorder.append(", ");
                sbreverseorder.append(", ");
            }
            sboriginalorder.append(arrstrorders[i]);

            int index = arrstrorders[i].indexof(" "); //判斷是否有升降標識
            if (index > 0)
            {
                //替換升降標識,分頁所需
                bool flag = arrstrorders[i].indexof(" desc", stringcomparison.ordinalignorecase) != -1;
                sbreverseorder.appendformat("{0} {1}", arrstrorders[i].remove(index), flag ? "asc" : "desc");
            }
            else
            {
                sbreverseorder.appendformat("{0} desc", arrstrorders[i]);
            }
        }

        //計算總頁數
        _pagesize = _pagesize == 0 ? _recordcount : _pagesize;
        int pagecount = (_recordcount + _pagesize - 1) / _pagesize;

        //檢查當前頁數
        if (_pageindex < 1)
        {
            _pageindex = 1;
        }
        else if (_pageindex > pagecount)
        {
            _pageindex = pagecount;
        }

        stringbuilder sbsql = new stringbuilder();
        //第一頁時,直接使用top n,而不進行分頁查詢
        if (_pageindex == 1)
        {
            sbsql.appendformat(" select top {0} * ", _pagesize);
            sbsql.appendformat(" from ({0}) as t ", _safesql);
            sbsql.appendformat(" order by {0} ", sboriginalorder.tostring());
        }
        //最后一頁時,減少一個top n 
        else if (_pageindex == pagecount)
        {
            sbsql.append(" select * from ");
            sbsql.append(" ( ");
            sbsql.appendformat(" select top {0} * ", _recordcount - _pagesize * (_pageindex - 1));
            sbsql.appendformat(" from ({0}) as t ", _safesql);
            sbsql.appendformat(" order by {0} ", sbreverseorder.tostring());
            sbsql.append(" ) as t ");
            sbsql.appendformat(" order by {0} ", sboriginalorder.tostring());
        }
        //前半頁數時的分頁
        else if (_pageindex < (pagecount / 2 + pagecount % 2))
        {
            sbsql.append(" select * from ");
            sbsql.append(" ( ");
            sbsql.appendformat(" select top {0} * from ", _pagesize);
            sbsql.append(" ( ");
            sbsql.appendformat(" select top {0} * ", _pagesize * _pageindex);
            sbsql.appendformat(" from ({0}) as t ", _safesql);
            sbsql.appendformat(" order by {0} ", sboriginalorder.tostring());
            sbsql.append(" ) as t ");
            sbsql.appendformat(" order by {0} ", sbreverseorder.tostring());
            sbsql.append(" ) as t ");
            sbsql.appendformat(" order by {0} ", sboriginalorder.tostring());
        }
        //后半頁數時的分頁
        else
        {
            sbsql.appendformat(" select top {0} * from ", _pagesize);
            sbsql.append(" ( ");
            sbsql.appendformat(" select top {0} * ", ((_recordcount % _pagesize) + _pagesize * (pagecount - _pageindex)));
            sbsql.appendformat(" from ({0}) as t ", _safesql);
            sbsql.appendformat(" order by {0} ", sbreverseorder.tostring());
            sbsql.append(" ) as t ");
            sbsql.appendformat(" order by {0} ", sboriginalorder.tostring());
        }

        return sbsql.tostring();
    }

    /// <summary>
    /// 獲取記錄總數sql語句
    /// </summary>
    /// <param name="_n">限定記錄數</param>
    /// <param name="_safesql">sql查詢語句</param>
    /// <returns>記錄總數sql語句</returns>
    public static string createtopnsql(int _n, string _safesql)
    {
        return string.format(" select top {0} * from ({1}) as t ", _n, _safesql);
    }

    /// <summary>
    /// 獲取記錄總數sql語句
    /// </summary>
    /// <param name="_safesql">sql查詢語句</param>
    /// <returns>記錄總數sql語句</returns>
    public static string createcountingsql(string _safesql)
    {
        return string.format(" select count(1) as recordcount from ({0}) as t ", _safesql);
    }
}


Microsoft Access在很多地方得到廣泛使用,例如小型企業,大公司的部門。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲精品在线三区| 久久国产尿小便嘘嘘| 亚洲人成网站精品片在线观看| 久久99精品久久久久| 精品国精品国产| 国产精品99久久久久| 国产精品免费看片| 色8久久精品久久久久久蜜| 亚洲精品国久久99热| 欧美日韩在线三级| 久久99国产精品久久99果冻传媒| 欧美成人女星排行榜| 国产aⅴ精品一区二区三区色成熟| 国产精品成人一区二区艾草| 欧美日韩一卡二卡三卡 | 欧美这里有精品| 亚洲国产成人91porn| 日韩精品中文字幕一区| 高清在线观看日韩| 亚洲午夜久久久久中文字幕久| 日韩美女天天操| 99久久免费精品高清特色大片| 亚洲午夜精品网| 欧美经典三级视频一区二区三区| 欧美影院一区二区三区| 国产精品一级片| 午夜精品视频在线观看| 欧美极品另类videosde| 在线播放国产精品二区一二区四区| 韩国精品一区二区| 亚洲国产一区在线观看| 中国色在线观看另类| 日韩欧美一二区| 在线免费观看视频一区| 成人app软件下载大全免费| 亚洲精品中文在线| 久久久久久一级片| 69堂国产成人免费视频| 97精品久久久午夜一区二区三区| 免费欧美日韩国产三级电影| 亚洲欧美日韩国产手机在线| 26uuu国产电影一区二区| 色又黄又爽网站www久久| 国产成人综合亚洲91猫咪| 日韩av不卡一区二区| 一区二区成人在线视频| 国产日本亚洲高清| 日韩精品自拍偷拍| 欧美精品一卡两卡| 欧美视频一区二| 精品视频一区 二区 三区| 91成人看片片| 欧美在线免费播放| 欧美在线啊v一区| 欧美体内she精视频| 欧美性videosxxxxx| 色欧美片视频在线观看| 色综合久久久久综合| 成人午夜视频在线观看| 成人免费看视频| 成人理论电影网| 北条麻妃国产九九精品视频| 国产91精品一区二区麻豆网站| 国产伦理精品不卡| 国产成人av电影免费在线观看| 国产麻豆欧美日韩一区| 国产麻豆成人传媒免费观看| 国产·精品毛片| 99久久99久久久精品齐齐| 在线看一区二区| 欧美日韩在线播放三区四区| 欧美精品乱人伦久久久久久| 欧美tk—视频vk| 久久婷婷成人综合色| 国产女同互慰高潮91漫画| 国产精品三级视频| 亚洲精品中文字幕乱码三区| 亚洲午夜在线电影| 日韩av网站在线观看| 久久99精品国产| av不卡免费在线观看| 色婷婷av一区二区三区大白胸| 欧美无人高清视频在线观看| 日韩欧美专区在线| 国产欧美日韩综合精品一区二区| 国产精品无码永久免费888| 国产精品乱码人人做人人爱| 亚洲另类春色校园小说| 91色|porny| 欧美午夜在线一二页| 日韩欧美色综合| 国产精品欧美久久久久一区二区| 亚洲欧美二区三区| 日韩高清在线电影| 成人免费视频播放| 欧美精选一区二区| 中文字幕巨乱亚洲| 亚洲国产精品天堂| 不卡的av中国片| 日韩色视频在线观看| 日韩伦理电影网| 久久精品国产秦先生| 色综合久久99| 国产日韩欧美综合一区| 亚洲电影视频在线| 国产福利精品导航| 精品污污网站免费看| 国产精品色哟哟| 九一九一国产精品| 欧美日本一区二区三区| 国产精品视频看| 青青草原综合久久大伊人精品| 国产精品99久久久久久有的能看| 精品视频一区三区九区| 国产精品乱码一区二区三区软件 | 奇米亚洲午夜久久精品| 91视频精品在这里| 国产蜜臀97一区二区三区 | 高清成人免费视频| 欧美一区二区视频免费观看| 一区av在线播放| 成人黄页在线观看| 91精品免费在线| 亚洲国产三级在线| 在线精品观看国产| 亚洲女子a中天字幕| 成人黄色免费短视频| 2024国产精品| 精品一区二区av| 欧美一级二级在线观看| 丝袜诱惑亚洲看片| 精品视频在线看| 亚洲国产成人porn| 欧美日韩成人综合| 天堂久久一区二区三区| 欧美日韩成人在线一区| 视频一区中文字幕国产| 欧美日韩国产一级| 舔着乳尖日韩一区| 欧美年轻男男videosbes| 亚洲va中文字幕| 91精品国产免费久久综合| 毛片av一区二区三区| 2024国产精品| 国产成人综合亚洲91猫咪| 久久99精品国产麻豆婷婷| 欧美变态tickling挠脚心| 久久疯狂做爰流白浆xx| 久久久久久久久伊人| www.亚洲激情.com| 亚洲一卡二卡三卡四卡 | 成人av网站在线观看免费| 欧美激情综合五月色丁香小说| 成人妖精视频yjsp地址| 亚洲欧美综合另类在线卡通| 色八戒一区二区三区| 亚洲成国产人片在线观看| 欧美大片拔萝卜| 国产91精品精华液一区二区三区| 国产精品久久久久久久蜜臀 | 91超碰这里只有精品国产| 国产一区二区三区黄视频| 国产精品久久久久久久久免费丝袜| 色美美综合视频| 久久超碰97中文字幕| 一区二区中文视频| 欧美日韩不卡视频| 成人性生交大片免费看在线播放| 亚洲男人的天堂一区二区| 欧美一区二区成人6969| 成人动漫av在线| 日本伊人午夜精品| 亚洲视频免费在线观看| 日韩美女视频一区二区在线观看| 国产69精品久久久久777| 日精品一区二区三区| 国产精品初高中害羞小美女文| 在线播放日韩导航| 成人动漫视频在线| 极品少妇一区二区| 亚洲成人先锋电影| 国产精品女主播av| 精品国产一区二区三区不卡| 在线观看91视频| 国产精品一线二线三线精华| 亚洲二区在线视频| 亚洲欧洲www| 国产欧美日韩三区| 久久综合狠狠综合| 51午夜精品国产| 色噜噜狠狠色综合中国| 成熟亚洲日本毛茸茸凸凹| 韩国精品免费视频| 久久精品国产色蜜蜜麻豆| 婷婷成人激情在线网| 一区二区高清免费观看影视大全 | 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲国产一区二区三区| 中文字幕中文乱码欧美一区二区| 久久影音资源网|