国产午夜成人免费看片无遮挡_日本免费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>

        国产综合色产在线精品| 欧美mv日韩mv| 精品乱人伦小说| 五月天激情小说综合| 日韩一区二区三区在线观看| 卡一卡二国产精品| 中文字幕高清不卡| 日本电影欧美片| 免费日本视频一区| 久久久久国色av免费看影院| 不卡的av网站| 日韩精品国产精品| 欧美国产日本韩| 欧美另类z0zxhd电影| 国产一区二区日韩精品| 日韩理论片网站| 欧美一区三区二区| 99久久免费国产| 免费成人美女在线观看.| 国产精品色在线| 欧美一区二区成人6969| 成人18精品视频| 久久成人18免费观看| 国产精品乱码一区二区三区软件 | 国产91对白在线观看九色| 国产精品麻豆一区二区| 91精品国产乱| 99久久久久久| 国内精品嫩模私拍在线| 国产精品久久久久影院老司| 337p亚洲精品色噜噜| a级高清视频欧美日韩| 久久99精品久久久久久| 亚洲国产cao| 国产精品免费视频观看| 2021久久国产精品不只是精品 | 国产福利一区在线| 日日摸夜夜添夜夜添国产精品| 国产精品你懂的在线| 精品少妇一区二区三区视频免付费| 在线观看亚洲精品| 91麻豆免费看| a美女胸又www黄视频久久| 国产一区 二区 三区一级| 日韩在线a电影| 亚洲国产欧美日韩另类综合| 亚洲品质自拍视频| 中文字幕一区av| 亚洲欧洲精品天堂一级| 中文字幕的久久| 日本一区二区不卡视频| 国产午夜亚洲精品午夜鲁丝片| 精品免费视频.| 精品国产一区二区在线观看| 欧美一区二区三区啪啪| 91精品国产免费| 欧美日本乱大交xxxxx| 欧美老年两性高潮| 日韩一级免费观看| 精品污污网站免费看| 欧美日韩一卡二卡三卡| 69堂亚洲精品首页| 精品国精品国产| 久久奇米777| 国产精品高潮久久久久无| 亚洲欧洲国产专区| 一区二区三区高清| 日韩高清欧美激情| 国产综合色在线视频区| 久久99九九99精品| 成人黄色一级视频| 欧美视频三区在线播放| 在线不卡免费欧美| 久久久亚洲高清| 国产精品毛片无遮挡高清| 亚洲欧美欧美一区二区三区| 亚洲一区二区三区三| 日韩精品亚洲一区| 国产一区二区在线观看视频| 成人精品鲁一区一区二区| 色综合视频在线观看| 欧美日韩一级二级| 精品国产三级电影在线观看| 国产精品麻豆网站| 日韩av网站免费在线| 国产不卡高清在线观看视频| 91在线视频官网| 欧美精品视频www在线观看| 日韩免费一区二区三区在线播放| 久久一区二区三区四区| 亚洲美女区一区| 麻豆成人av在线| 色婷婷久久久久swag精品| 欧美一区二区免费视频| 久久久美女毛片| 亚洲国产一二三| 国产乱一区二区| 欧美日韩电影一区| 中文字幕亚洲视频| 国产一区二三区| 在线不卡中文字幕| 亚洲久草在线视频| 国产99久久久国产精品潘金| 制服视频三区第一页精品| 中文字幕亚洲成人| 激情五月婷婷综合| 欧美伦理影视网| 亚洲免费资源在线播放| 国产成人av一区二区三区在线观看| 欧美少妇一区二区| 亚洲柠檬福利资源导航| 国产iv一区二区三区| 日韩午夜激情av| 五月婷婷久久综合| 欧美性大战久久久久久久| 国产精品久久久久久久第一福利| 免费成人在线视频观看| 精品视频在线免费观看| 一区二区三区四区蜜桃| 99在线精品观看| 国产精品系列在线| 粉嫩av一区二区三区在线播放| 精品奇米国产一区二区三区| 日韩不卡一区二区三区 | 欧美一卡二卡在线观看| 亚洲一区自拍偷拍| 日本道在线观看一区二区| 亚洲丝袜另类动漫二区| 99久久精品久久久久久清纯| 国产精品久久久久久久久久免费看 | 国产在线精品不卡| 日韩欧美高清dvd碟片| 日韩高清在线观看| 日韩欧美中文字幕一区| 久久精品国产秦先生| 精品国产乱子伦一区| 国模大尺度一区二区三区| 国产拍揄自揄精品视频麻豆| 丁香婷婷综合网| 中文字幕一区二区三中文字幕| 成人美女视频在线观看| 18欧美乱大交hd1984| 色香蕉久久蜜桃| 午夜日韩在线电影| 日韩欧美亚洲国产精品字幕久久久| 奇米影视在线99精品| 久久色.com| 93久久精品日日躁夜夜躁欧美| 一区二区三区四区激情| 欧美一区三区二区| 国产suv精品一区二区6| 亚洲免费观看视频| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲成a人片在线不卡一二三区 | 懂色中文一区二区在线播放| 国产精品沙发午睡系列990531| 菠萝蜜视频在线观看一区| 亚洲精品一二三四区| 88在线观看91蜜桃国自产| 国内久久婷婷综合| 亚洲人成网站色在线观看| 欧美日韩精品一区二区| 韩国精品在线观看| 亚洲区小说区图片区qvod| 欧美二区在线观看| 国产精品一区二区在线播放 | 亚洲色图.com| 56国语精品自产拍在线观看| 国产精品 欧美精品| 亚洲一区免费视频| 久久亚洲春色中文字幕久久久| 91香蕉视频mp4| 另类小说图片综合网| 自拍偷拍亚洲综合| 欧美成人精品3d动漫h| 在线精品亚洲一区二区不卡| 激情成人午夜视频| 亚洲一区二区三区影院| 国产亚洲欧洲一区高清在线观看| 在线观看日韩av先锋影音电影院| 久久草av在线| 亚洲v精品v日韩v欧美v专区 | 欧美一级片免费看| 色噜噜狠狠一区二区三区果冻| 精品一区二区在线免费观看| 一区二区三区鲁丝不卡| 亚洲国产成人私人影院tom| 3751色影院一区二区三区| 99精品一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲视频图片小说| 中文字幕第一页久久| 久久在线免费观看| 日韩免费成人网| 在线播放中文字幕一区| 欧美三级视频在线| 欧美探花视频资源| 91美女在线观看| 成人激情综合网站| 国产91对白在线观看九色|