[英]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.