zoukankan      html  css  js  c++  java
  • 分页

    /// <summary>
    /// 分页
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public string ShowPage(Item item, string Auto_Price_Starttime, string Auto_Price_Endtime)
    {
    System.Data.SqlClient.SqlCommand cmd = null;
    string connStr = DAL.ControllerFactory.GetNewController(DAL.e_ConsType.Main2).ConnectionString;
    string returnstr = string.Empty;
    int page = item.page;
    int size = item.rows;
    try
    {

    using (SqlConnection sc = new SqlConnection(connStr))
    {
    cmd = sc.CreateCommand();
    SqlParameter[] para ={
    new SqlParameter("@recordTotal",SqlDbType.Int),
    new SqlParameter("@keyName",SqlDbType.VarChar),
    new SqlParameter("@pageSize",SqlDbType.Int),
    new SqlParameter("@pageNo",SqlDbType.Int),
    new SqlParameter("@whereString",SqlDbType.VarChar)

    };

    SqlParameter prmrecordTotal = new SqlParameter("@recordTotal", SqlDbType.Int);
    SqlParameter prmkeyName = new SqlParameter("@keyName", SqlDbType.VarChar);
    SqlParameter prmPageSize = new SqlParameter("@pageSize", SqlDbType.Int);
    SqlParameter prmpageNo = new SqlParameter("@pageNo", SqlDbType.Int);
    SqlParameter prmwhereString = new SqlParameter("@whereString", SqlDbType.VarChar);


    prmrecordTotal.Direction = ParameterDirection.InputOutput;
    prmrecordTotal.Value = 0;
    prmPageSize.Value = size;
    prmpageNo.Value = page;
    prmkeyName.Value = "b.Id";
    prmwhereString.Value = GetSelectWhere(item, Auto_Price_Starttime, Auto_Price_Endtime);

    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "P_GridViewPager";
    cmd.Parameters.Add(prmrecordTotal);
    cmd.Parameters.Add(prmkeyName);
    cmd.Parameters.Add(prmPageSize);
    cmd.Parameters.Add(prmpageNo);
    cmd.Parameters.Add(prmwhereString);

    SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);
    DataTable dt1 = new DataTable();
    adapter.Fill(dt1);

    int resultcount = (int)prmrecordTotal.Value;

    Hashtable hash = new Hashtable();
    hash.Add("total", resultcount);
    hash.Add("rows", dt1);
    returnstr = Newtonsoft.Json.JsonConvert.SerializeObject(hash);
    }
    }
    catch (Exception ex)
    {

    }
    return returnstr;
    }

    存储过程:

     
     CREATE PROCEDURE [dbo].[P_GridViewPager] (  
         @recordTotal INT OUTPUT,            --输出记录总数  
         --@viewName VARCHAR(800),        --表名  
         --@fieldName VARCHAR(800) = '*',        --查询字段  
         @keyName VARCHAR(200) = 'Id',            --索引字段  
         @pageSize INT = 20,                    --每页记录数  
         @pageNo INT =1,                    --当前页  
         --@orderString VARCHAR(200),        --排序条件  
         @whereString VARCHAR(800) = '1=1'        --WHERE条件  
     )  
     AS  
     BEGIN  
          DECLARE @beginRow INT  
          DECLARE @endRow INT  
          DECLARE @tempLimit VARCHAR(200)  
          DECLARE @tempCount NVARCHAR(1000)  
          DECLARE @tempMain VARCHAR(1000)  
          --declare @timediff datetime   
            
          set nocount on  
          --select @timediff=getdate() --记录时间  
       
          SET @beginRow = (@pageNo - 1) * @pageSize    + 1  
          SET @endRow = @pageNo * @pageSize  
          SET @tempLimit = 'rows BETWEEN ' + CAST(@beginRow AS VARCHAR) +' AND '+CAST(@endRow AS VARCHAR)  
            
          --输出参数为总记录数  
          SET @tempCount = 'SELECT @recordTotal = COUNT(*) FROM (SELECT '+@keyName+' FROM [fanhua_risk].[dbo].[Auto_Price] a     
                                        left   join  [fanhua_risk].[dbo].[Auto_Price_All] b  on   a.Auto_Price_All_ID=b.ID WHERE '+@whereString+') AS my_temp'  
          EXECUTE sp_executesql @tempCount,N'@recordTotal INT OUTPUT',@recordTotal OUTPUT  
              
          --主查询返回结果集  
          SET @tempMain = 'SELECT  * FROM (SELECT ROW_NUMBER() OVER (order by b.id desc) AS rows ,a.*,b.TotalPrice as TotalPrice_All,b.TotalPrice_End  FROM [fanhua_risk].[dbo].[Auto_Price] a     
                                        left   join  [fanhua_risk].[dbo].[Auto_Price_All] b  on   a.Auto_Price_All_ID=b.ID WHERE '+@whereString+') AS main_temp WHERE '+@tempLimit + 'order by id desc'  
            
          --PRINT @tempMain  
          EXECUTE (@tempMain)  
          --select datediff(ms,@timediff,getdate()) as 耗时   
            
          set nocount off  
     END  
      

  • 相关阅读:
    Android Studio 解决unspecified on project app resolves to an APK archive which is not supported
    IOS 一句代码搞定启动引导页
    iOS—最全的真机测试教程
    Hue的三大特点、三大功能和架构
    CentOS和Ubuntu系统下安装vsftp(助推大数据部署搭建)
    Starting vsftpd for vsftpd: [FAILED]问题的解决
    大数据搭建各个子项目时配置文件技巧(适合CentOS和Ubuntu系统)(博主推荐)
    CentOS6.5下Cloudera安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
    Hue的全局配置文件hue.ini(图文详解)
    Cloudera Hue是什么?
  • 原文地址:https://www.cnblogs.com/wangnengduo/p/6594314.html
Copyright © 2011-2022 走看看