簡體   English   中英

在asp.net中使用存儲過程進行自定義分頁

[英]Custom pagination with stored procedure in asp.net

我需要從數據庫中獲取大約40000行並綁定到gridview,然后此數據需要導出到excel和PDF。 當我使用簡單的綁定過程綁定行時,大約需要5到6分鍾的薄荷糖。 因此,我編寫了一個用於自定義分頁的存儲過程。

我遵循的程序如下。

CREATE PROCEDURE [dbo].[uspGetTarnsactionPaging]
  @PageIndex INT = 1
  ,@PageSize INT = 10
  ,@RecordCount INT OUTPUT
AS
 BEGIN
   SET NOCOUNT ON;
  select   APP.AppName AS "Application Name",
  TRA.OS_Name as "OS",TRA.MSISDN,TRA.RequestDateTime AS "Request DateTime Stamp",
  TRA.ResponseDateTime AS "Reponse DateTime Stamp" ,TRA.IP,TRA.UserDetails,TRA.UserAgent,TRA.OperationType ,
  TRA.OperationDetails AS "Opperation Details",TRA.Status 
 INTO #Results
FROM TTSL_Application_Master APP INNER JOIN TTSL_ApplicationTransactionDetails_Master TRA     
ON APP.AppID=TRA.ApplicationID   
 WHERE  TRA.ApplicationID=2 AND TRA.RequestDateTime >= 2014-11-02 AND TRA.ResponseDateTime <= 2014-11-03
  SELECT ROW_NUMBER() OVER
  (
order by App_TransactionDetailsID
  )AS RowNumber


  SELECT @RecordCount = COUNT(*)
  FROM #Results

  SELECT * FROM #Results
  WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1

  DROP TABLE #Results

結束

當我執行存儲過程時,則顯示以下錯誤。

消息207,級別16,狀態1,過程uspGetTarnsactionPaging,第18行無效的列名“ App_TransactionDetailsID”。

試試這個查詢

CREATE PROCEDURE [dbo].[uspGetTarnsactionPaging]
  @PageIndex INT = 1
  ,@PageSize INT = 10
  ,@RecordCount INT OUTPUT
AS
 BEGIN
   SET NOCOUNT ON;
  select ROW_NUMBER() OVER
  (
   order by App_TransactionDetailsID
  )AS RowNumber, APP.AppName AS "Application Name",
  TRA.OS_Name as "OS",TRA.MSISDN,TRA.RequestDateTime AS "Request DateTime Stamp",
  TRA.ResponseDateTime AS "Reponse DateTime Stamp" ,TRA.IP,TRA.UserDetails,TRA.UserAgent,TRA.OperationType ,
  TRA.OperationDetails AS "Opperation Details",TRA.Status 
 INTO #Results
FROM TTSL_Application_Master APP INNER JOIN TTSL_ApplicationTransactionDetails_Master TRA     
ON APP.AppID=TRA.ApplicationID   
 WHERE  TRA.ApplicationID=2 AND TRA.RequestDateTime >= 2014-11-02 AND TRA.ResponseDateTime <= 2014-11-03
Order by App_TransactionDetailsID Desc  


  SELECT @RecordCount = COUNT(*)
  FROM #Results

  SELECT * FROM #Results
  WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1

  DROP TABLE #Results

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM