mysql 高效分页控件及c#调用实例

系统 2083 0

第一、首先在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);

        }
      
    

 

mysql 高效分页控件及c#调用实例


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论