code:
///
? ? ? ?/// 获取分页方法并且返回总条数
? ? ? ?///
? ? ? ?///
每页的条数
? ? ? ?///
页码
? ? ? ?///
Sql语句
? ? ? ?///
排序
? ? ? ?///
总条数
? ? ? ?///
? ? ? ?public static DataSet GetList(int pageSize, int pageIndex, string strSql, string sortName, out int ResultCount)
? ? ? ?{
? ? ? ? ? ?MySqlParameter outParmCount = new MySqlParameter("@out_total", MySqlDbType。
Int32)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Direction = ParameterDirection。Output
? ? ? ? ? ?};
? ? ? ? ? ?IDataParameter[] parameters = {
? ? ? ? ? ? ? ? ? ?new MySqlParameter("@strsql", MySqlDbType。
VarChar, 4000),
? ? ? ? ? ? ? ? ? ?new MySqlParameter("@pageIndex", MySqlDbType。Int32),
? ? ? ? ? ? ? ? ? ?new MySqlParameter("@pageSize", MySqlDbType。
Int32),
? ? ? ? ? ? ? ? ? ?new MySqlParameter("@orderType", MySqlDbType。Int32),
? ? ? ? ? ? ? ? ? ?new MySqlParameter("@sortName", MySqlDbType。
VarChar,50),
? ? ? ? ? ? ? ? ? ?outParmCount
? ? ? ? ? ? ? ? ? ?};
? ? ? ? ? ?parameters[0]。
Value = strSql;
? ? ? ? ? ?parameters[1]。Value = pageIndex;
? ? ? ? ? ?parameters[2]。Value = pageSize;
? ? ? ? ? ?parameters[3]。
Value = 1;
? ? ? ? ? ?parameters[4]。Value = sortName;
? ? ? ? ? ?Dictionary dic = new Dictionary { { "@out_total", "" } };
? ? ? ? ? ?DataSet ds = RunProcedure("GetRecordAsPageMulti", parameters, ref dic);
? ? ? ? ? ?ResultCount = dic["@out_total"] == null || dic["@out_total"] == "" ? 0 : dic["@out_total"]。
ToInt32();
? ? ? ? ? ?return ds;
? ? ? ?}
下面是Mysql的分页存储过程
BEGIN
-- 说明:分页存储过程
declare startRow int;
declare sqlStr varchar(5999);
declare limitTemp varchar(1000);
declare orderTemp varchar(1000);
set startRow = (pageIndex-1)*pageSize;
set @sqlStrtotal= CONCAT('select count(1) into @total from (', strsql,') as TableNameTotal');
prepare stmt from @sqlStrtotal;
? ?execute stmt;
set out_total = @total;
? ?set @sqlStrtotal = null;
set sqlStr = strsql ;
if pageSize=0 THEN
? ? set limitTemp =CONCAT('');
ELSE
? ? set limitTemp = CONCAT(' limit ',startRow,',',pageSize);
end IF;
set orderTemp = CONCAT(' order by ',sortName);
if orderType = 0 then
set orderTemp = CONCAT(orderTemp,' ASC ');
else
set orderTemp = CONCAT(orderTemp,' DESC ');
end if;
set @sqlString = CONCAT(sqlStr,' ',orderTemp,limitTemp);
#select @sqlString;
prepare sqlstmt from @sqlString;
execute sqlstmt;
deallocate prepare sqlstmt;
END
上面是调 用的方法,下面是分页的存储过程!。
全部