zoukankan      html  css  js  c++  java
  • mysql 高效分页控件及c#调用实例

    第一、首先在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-1)*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[4].Direction = System.Data.ParameterDirection.Output;
                    param[5].Direction = System.Data.ParameterDirection.Output;
    
                    //cmd.CommandText = "up_ProcCustomPage2005";
                    //string sql="select * FROM Cabin order by AddTime desc LIMIT 0,20;";
                    iPageCount = 0;
                    iiRecord_Count = 0;
                    ds = MySqlHelper.ExecuteDataset(MySqlHelper.ConnectionString, CommandType.StoredProcedure, "proc_page", param);
    
                    try
                    {
                        iPageCount = Convert.ToInt32(param[4].Value);
                        iiRecord_Count = Convert.ToInt32(param[5].Value);
                    }
                    catch (Exception ex)
                    {
    
                        iPageCount = 0;
                        iiRecord_Count = 0;
                        throw;
                    }
                    finally
                    {
                        //param.cl.Clear();
                    }
                }
                catch (Exception e)
                {
                    ds = null;
    
                    iPageCount = 0;
                    iiRecord_Count = 0;
                    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);
            }
  • 相关阅读:
    Django ORM中常用的字段类型以及参数配置
    python enumerate用法总结
    Django 模板渲染
    Django null=True和blank=True的区别
    Django下关于session的使用
    方程组法求函数的解析式
    求数列通项公式的小众方法
    不等式性质
    多项选择题
    对勾型函数
  • 原文地址:https://www.cnblogs.com/honghong75042/p/3488727.html
Copyright © 2011-2022 走看看