分页存储过程



CREATE PROCEDURE   stu_ProcedureName
    @pageindex int ,
    @pageSize int,
    @name nvarchar(50),
    @count int output
as
BEGIN
   
   if(@name='')
   begin
    set  @count=( select  count(1)  from ( select   ROW_NUMBER() over( order by student.id)   as newid , *   from student  ) t  where t.Names like '%'+@name+ '%')
    
     select  top(@pageSize) * from ( select   ROW_NUMBER() over( order by student.id)   as newid , *   from student  where Names like '%'+@name+ '%' ) t  where  t.newid >(@pageindex-1)*@pageSize
   end
    else
    begin
     set  @count=( select  count(1)  from ( select   ROW_NUMBER() over( order by student.id)   as newid , *   from student  ) t )
    
     select  top(@pageSize) * from ( select   ROW_NUMBER() over( order by student.id)   as newid , *   from student ) t  where  t.newid >(@pageindex-1)*@pageSize
    end
       

 
END
GO
declare @count int;
exec stu_ProcedureName 1,2,'1',@count out
select @count

嵌套类

    public class MM
    {
        public int newid { get; set; }
        public int id { get; set; }
        public string Names { get; set; }
        public int age { get; set; }
        public string adress { get; set; }

    }

    public class pageList<MM>
    {
        public int pageindex { get; set; }
        public int pagesize { get; set; }
        public int count { get; set; }
        public List<MM> shuju{get;set;}

    }

原文地址:https://www.cnblogs.com/yxlx/p/7879309.html