就是因为存储过程和ID太麻烦,开发效率不高所以没有,再说缓存ID不可以任意跳页

解决方案 »

  1.   

    问个问题,用存储过程作分页,
    REATE PROCEDURE dbo.usp_ArticleListP @FileType nvarchar(50), @Page int,@ColumnType nvarchar(50)
    AS
    set nocount ondeclare @FileSeqNo int, @FileTitle nvarchar(100),@ColumnName nvarchar(100)select @FileSeqNo = ' ', @FileTitle='File Title',@ColumnName='ColumnName'select FileSeqNo = @FileSeqNo, FileTitle = @FileTitle,ColumnName=@ColumnName
    into #FileList
    where 0 = 1insert into #FileList 
    select  a.SeqNo, a.Title,c.ColumnName  from Article a,ColumnType C where C.ColumnId=a.ClassId and a.classid like @ColumnType+'%' and a.TypeId=@FileType and a.IsAuditing = '1'  order by a.seqno descCREATE TABLE #FileListP 

       ID int IDENTITY, 
    FileSeqNo int, 
    FileTitle nvarchar(100) ,
                 ColumnName nvarchar(100)
    ) insert into #FileListP (FileSeqNo, FileTitle,ColumnName) 
    select * from #FileListdeclare @TotalRecs int, @TotalPages intselect @TotalRecs = count(*), @TotalPages = case when count(*)%16 > 0 then count(*)/16 + 1 else count(*)/16 end  from #FileListPDECLARE @FirstRec int, @LastRec int 
    SELECT @FirstRec = (@Page - 1) * 16
    SELECT @LastRec = (@Page * 16 + 1)SELECT *, MoreRecords = (SELECT COUNT(*) FROM #FileListP TI WHERE TI.ID >= @LastRec),TotalRecs=@TotalRecs, TotalPages=@TotalPages
    FROM #FileListP 
    WHERE ID > @FirstRec AND ID < @LastRec
    GO
    在C#.net中获得、传送参数怎么写?在ASP里用cmdCommand.parameters就可以,初学.net不知道该怎么写。