第一、首先在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. windows bat命令编写大全

    1 echo 和 @ @  #关闭单行回显echo off #从下一行开始关闭回显 @echo off  #从本行开始关闭回显.一般批处理第一行都是这个 echo on  #从下一行开始打开回显 ec ...

  2. 关于iostream的效率问题

    前言    经常有人说iostream的速度慢,IO流比stdio的慢多了.但是有人测试过的,iostream的速度是超过stdio的. 测试结果 /* C */#include <stdio. ...

  3. NSIS如何对一整个目录文件夹(包括子文件夹和其中的文件)压缩

    原来不加/r参数,NSIS编译器就会不认识文件夹啊. File /r [dir] Reference: http://stackoverflow.com/questions/7973242/nsis- ...

  4. JVM基础和调优(四)

    垃圾回收算法中的一些问题 再上一遍中,说道JVM并不是采用一种垃圾回收的方法,因为不同的内存块采取的方法是不样的,那么:为什么要分块?为什么不采用同一种方法回收垃圾,这样不是更加的统一吗? 分块的垃圾 ...

  5. Centos 6.5中安装后不能打开emacs的问题

    问题的发现过程: 安装了最新的centos版本后发现居然打不开emacs,然后在终端中输入emacs后还是不能打开,出现了下面的提示: emacs: error while loading share ...

  6. (step5.1.6)hdu 1272(小希的迷宫——并查集)

    题目大意:输入一系列的点,判断这些点组成的图符不符合小希的思路(无环.连通) 解题思路: 1)如果两个节点的根节点相同,那么在这两个节点之间添加1条边以后,这个图肯定有环路. 2)孤立节点:被使用过& ...

  7. Beyond Compare 忽略两个文件内容的顺序比较文件内容(xjl456852原创)

    有时两个文件内容的顺序是不固定的,对比时需要忽略文件顺序进行对比. 可以这样设置: 点击菜单下面工具栏按钮: 点击Format旁的三角,选择Sorted,就会按文件的顺序排序比较.忽略了文件内容顺序的 ...

  8. APP常用模块

    2016年上半年 APICloud合作云服务商提供了各种类型模块多达45个 其中最新发布的重要模块有 美洽客服模块 亲加视频直播相关模块 保利威视视频播放器模块 苹果银联支付模块 贝宝支付模块 谷歌分 ...

  9. Android开发(20)--RadioGroup的使用

    RadioGroup 有时候比較实用.主要特征是给用户提供多选一机制. MainActivity.java package com.example.lesson16_radio; import and ...

  10. [Redux] Extracting Container Components -- VisibleTodoList

    Code to be refacted: const TodoList = ({ todos, onTodoClick }) => ( <ul> {todos.map(todo =& ...