第一、首先在mysql中创建一个存储过程

BEGIN

/*
@selectSql VARCHAR(5000), --sql语句
@orderWhere VARCHAR(200), --排序条件
@pageSize int, -- 每页多少条记录
@pageIndex int = 1 , -- 指定当前为第几页
@TotalPage int output , -- 返回总页数
@totalCount int output -- 返回总记录数
*/ SET @str=CONCAT("SET @tCount=(SELECT COUNT(1) FROM (",selectSql,") as t );");
PREPARE stmt1 FROM @str;
EXECUTE stmt1; -- 总页数
SET @tPage=CEILING((@tCount+0.0)/PageSize);
SET TotalCount=@tCount;
SET TotalPage=@tPage; SET @str=CONCAT(selectSql," ",orderWhere," LIMIT ",(PageIndex-)*PageSize,",",PageSize,";");
PREPARE stmt1 FROM @str;
EXECUTE stmt1; END

二、c#代码:

public static DataSet GetExecuteCustomPageDataSetMySql(string selectSql,string orderwhere, int iPage_Size, int iPage_Index,  out int iPageCount, out int iiRecord_Count)
{ DataSet ds = null;
try
{
MySql.Data.MySqlClient.MySqlParameter[] param = new MySql.Data.MySqlClient.MySqlParameter[]
{
//IN selectSql varchar(4000),IN orderWhere varchar(200),IN PageSize int,IN PageIndex int,OUT TotalPage int,OUT TotalCount int
new MySql.Data.MySqlClient.MySqlParameter("?selectSql",selectSql),
new MySql.Data.MySqlClient.MySqlParameter("?orderWhere",orderwhere),
new MySql.Data.MySqlClient.MySqlParameter("?pageSize",iPage_Size),
new MySql.Data.MySqlClient.MySqlParameter("?pageIndex",iPage_Index),
new MySql.Data.MySqlClient.MySqlParameter("?TotalPage", MySql.Data.MySqlClient.MySqlDbType.Int32),
new MySql.Data.MySqlClient.MySqlParameter("?TotalCount", MySql.Data.MySqlClient.MySqlDbType.Int32)
}; param[].Direction = System.Data.ParameterDirection.Output;
param[].Direction = System.Data.ParameterDirection.Output; //cmd.CommandText = "up_ProcCustomPage2005";
//string sql="select * FROM Cabin order by AddTime desc LIMIT 0,20;";
iPageCount = ;
iiRecord_Count = ;
ds = MySqlHelper.ExecuteDataset(MySqlHelper.ConnectionString, CommandType.StoredProcedure, "proc_page", param); try
{
iPageCount = Convert.ToInt32(param[].Value);
iiRecord_Count = Convert.ToInt32(param[].Value);
}
catch (Exception ex)
{ iPageCount = ;
iiRecord_Count = ;
throw;
}
finally
{
//param.cl.Clear();
}
}
catch (Exception e)
{
ds = null; iPageCount = ;
iiRecord_Count = ;
throw;
}
finally
{
//cnn.Close();
//cnn.Dispose();
}
return ds;
}

三、引用例子

public DataSet GetPurchaserSalesVolumeAnalysis(string where,
string sFilter_Condition, int iPage_Size, int iPage_Index, string sTaxisField,
int iTaxis_Sign, out int iPageCount, out int iiRecord_Count)
{ string sql = @"select DISTINCT NewT.ptPaymentDate FlightOrderSub NewT "; string orderwhere = " ORDER BY NewT.ptPaymentDate ";
return BaitourDAO.Common.DBHelper.GetExecuteCustomPageDataSetMySql(
sql
, orderwhere
, iPage_Size
, iPage_Index
, out iPageCount
, out iiRecord_Count);
}

mysql 高效分页控件及c#调用实例的更多相关文章

  1. sql server高效分页控件及c#调用实例

    第一.首先在sqlserver中创建一个存储过程 USE [BZY] GO /****** 对象: StoredProcedure [dbo].[up_ProcCustomPage2005_New] ...

  2. Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置

    0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...

  3. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  4. 如何Windows分页控件中增加统计功能

    在我的博客里面,很多Winform程序里面都用到了分页处理,这样可以不管是在直接访问数据库的场景还是使用网络方式访问WCF服务获取数据,都能获得较好的效率,因此WInform程序里面的分页控件的使用是 ...

  5. 仿淘宝分页按钮效果简单美观易使用的JS分页控件

    分页按钮思想:  1.少于9页,全部显示  2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码  附件中有完整例子的压缩包下载.已更新到最新版本  先看效果图:  01输入框焦点效果  ...

  6. 基于存储过程的MVC开源分页控件--LYB.NET.SPPager

    摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...

  7. 分页控件layui的使用

    $.getJSON( )的使用方法简介 $.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] ) url是必选参数,表示json ...

  8. 基于Bootstrap仿淘宝分页控件实现

    .header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...

  9. C# DataGridView自定义分页控件

    好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...

随机推荐

  1. T-SQL函数类别统计

  2. 数字积分法DDA(DDA(Digital Differential Analyzer)

    数字积分法DDA(DDA(Digital Differential Analyzer)    数字积分法又称数字微分分析法DDA(Digital differential Analyzer),是在数字 ...

  3. eucMenu

  4. 禁用menu键

    发现很多应用中基本不再使用menu键来显示菜单了,而在android studio中创建一个activity时,默认使用了actionBar,就是在右上角会显示三个点的内容,点击会出现Settings ...

  5. python高级编程:有用的设计模式3

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#访问者:有助于将算法从数据结构中分离出来"&qu ...

  6. iOS 消息推送原理

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Prov ...

  7. linux系统批量无人值守安装

    一:批量无人值守安安装原理 利用DHCP TFTP FTP和PXE技术实现批量安装系统,首先在主server上安装好DHCP TFTP和FTP服务,client通过网卡的PXE技术获取到IP地址和TF ...

  8. Hash表题目整数hash-HDOJ1425(转载)

      哈希表(散列表)的基本原理:使用一个下标范围比较大的数组来存储元素,一般通过设计一个函数(哈希函数,即散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,然后用该数组单元来存储对应 ...

  9. poj 2041 Unreliable Message 字符串处理

    水的问题.直接附着到代码. //poj 2041 //sep9 #include <iostream> using namespace std; char mode[128]; char ...

  10. 如何单独编译Android源代码中的模块

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6566662 第一次下载好Android源代码工 ...