CREATE PROCEDURE [dbo].[sp_GetPageWiseData]
(
@tableName sysname,
@orderColumn nvarchar(100),
@PageIndex INT = 1,
@PageSize INT = 10,
@RecordCount varchar(10) OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @query varchar(2000),
@minimumIndex varchar(5),
@maximumIndex varchar(5)
SET @minimumIndex=convert(varchar,(@PageIndex - 1) * @PageSize + 1)
SET @maximumIndex=convert(varchar,@PageIndex * @PageSize)
SET @query='SELECT ROW_NUMBER() OVER(ORDER BY ' + @orderColumn + ' ASC)AS RowNumber,* INTO #Results FROM ' + @tableName + ';
SELECT ' + @RecordCount + '=COUNT(*) FROM #Results;
SELECT * FROM #Results WHERE RowNumber BETWEEN ' + @minimumIndex + ' AND ' + @maximumIndex + ';
DROP TABLE #Results'
Exec (@query)
END
В этом случае проблема заключается в том, когда процедура выполняется, выходной параметр @RecordCount
показывает значение NULL.Пользовательский динамический пейджинг с использованием хранимой процедуры в asp.net
ПОЧЕМУ?
Просьба пояснить. Благодаря
Вы должны ** не использовать ** префикс 'sp_' для хранимых процедур. Этот префикс зарезервирован Microsoft для собственного использования в будущем. Используйте что-нибудь еще - просто не 'sp_' ... –
Почему вы возвращаете только номера строк из кода? И использование динамического SQL - это неправильный подход в этом случае. Используйте одну процедуру для таблицы – gbn
. Получите эту идею отсюда: http://www.aspsnippets.com/Articles/Custom-Paging-in-ASP.Net-GridView-using-SQL-Server-Stored-Procedure.aspx –