手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

将以前写的SQL2分查找法通用分页存储过程算法 改成.net类实现

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

...{
if (pageIndex < 2 || _Page <= (pageIndex/2 pageIndex%2)) //--前半部分数据处理
...{
if (_Page == 1)
...{
strTmp = SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName " ORDER BY " _fldSort " " strFSortType;
}
else
...{
strTmp = SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName " WHERE " _ID " <(SELECT MIN(" _ID ") FROM (" SqlSelect " TOP " _PageSize*(_Page-1) " " _ID " FROM " _tbName
" ORDER BY " _fldSort " " strFSortType ") AS TBMinID) ORDER BY " _fldSort " " strFSortType;
}
}
else
...{
_Page = pageIndex - _Page 1; //后半部分数据处理
if (_Page <= 1) //--最后一页数据显示
...{
strTmp = SqlSelect " * FROM (" SqlSelect " TOP " lastCount " " _fldName " FROM " _tbName " ORDER BY " _fldSort " " strSortType ") AS TempTB" " ORDER BY " _fldSort " " strFSortType;
}
else
...{
strTmp = SqlSelect " * FROM (" SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName
" WHERE " _ID " >(SELECT MAX(" _ID ") FROM(" SqlSelect " TOP " (_PageSize*(_Page-2) lastCount) " " _ID " FROM " _tbName
" ORDER BY " _fldSort " " strSortType ") AS TBMaxID) ORDER BY " _fldSort " " strSortType ") AS TempTB ORDER BY " _fldSort " " strFSortType;
}
}
}
else // --有查询条件
...{
if (pageIndex < 2 || _Page <=(pageIndex/2 pageIndex%2))//--前半部分数据处理
...{
if (_Page == 1)
...{
strTmp = SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName "WHERE 1=1 " _strCondition " ORDER BY " _fldSort " " strFSortType;
}
else
...{
strTmp = SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName
" WHERE " _ID " <(SELECT MIN(" _ID ") FROM (" SqlSelect " TOP " (_PageSize*(_Page-1)) " " _ID " FROM " _tbName
" WHERE 1=1 " _strCondition " ORDER BY " _fldSort " " strFSortType ") AS TBMaxID) " _strCondition
" ORDER BY " _fldSort " " strFSortType;
}
}
else //--后半部分数据处理
...{
_Page = pageIndex-_Page 1;
if (_Page <= 1) //--最后一页数据显示
...{
strTmp = SqlSelect " * FROM (" SqlSelect " TOP " lastCount " " _fldName " FROM " _tbName
" WHERE 1=1 " _strCondition " ORDER BY " _fldSort " " strSortType ") AS TempTB ORDER BY " _fldSort " " strFSortType;
}
else
...{
strTmp = SqlSelect " * FROM (" SqlSelect " TOP " _PageSize " " _fldName " FROM " _tbName
" WHERE " _ID " >(SELECT MAX(" _ID ") FROM(" SqlSelect " TOP " (_PageSize*(_Page-2) lastCount) " " _ID " FROM " _tbName
" WHERE 1=1 " _strCondition " ORDER BY " _fldSort " " strSortType ") AS TBMaxID) " _strCondition
" ORDER BY " _fldSort " " strSortType ") AS TempTB ORDER BY " _fldSort " " strFSortType;
}
}
}

return strTmp;
}
}
}
--以上代码是针对之前写的TOP MAX模式的分页存储过程修改
--以上分页算法对SQL SERVER 和 ACCESS同样有效
参见:http://www.cnblogs.com/hertcloud/archive/2005/12/21/301327.html

//调用函数例子
public IList getParkDataList(string key, int curPage, out int pageCount, int pageSize, int Counts)
...{

IList list = new ArrayList();

string SECLECT_FIELD = "T_Park.ParkID, T_Park.ParkTitle, T_Park.ParkLetter, T_ParkArea.AreaName, T_ParkType.ParkTypeName ";
string SECLECT_TABLE = "T_ParkType INNER JOIN (T_ParkArea INNER JOIN T_Park ON T_ParkArea.ParkAreaID = T_Park.ParkAreaID) ON T_ParkType.ParkTypeID = T_Park.ParkTypeID";
string SECLECT_CONDITION = string.Empty;


if (key != string.Empty)
...{
SECLECT_CONDITION = " AND T_Park.ParkTitle like '%" key "%'";

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!