Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL Server 2008上的分页_Java_Mysql_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Java SQL Server 2008上的分页

Java SQL Server 2008上的分页,java,mysql,sql,sql-server,sql-server-2008,Java,Mysql,Sql,Sql Server,Sql Server 2008,我试图使用分页从SQLServer2008获取数据 我的程序是: CREATE PROC Paginate @PageSize int, @PageNumber int AS Declare @RowStart int Declare @RowEnd int if @PageNumber > 0 Begin SET @PageNumber = @PageNumber -1 SET @RowStart = @PageSize * @PageNumber + 1; SET @R

我试图使用分页从SQLServer2008获取数据

我的程序是:

CREATE PROC Paginate
@PageSize int, @PageNumber int 
AS 
Declare @RowStart int 
Declare @RowEnd int 
if @PageNumber > 0 
Begin 
SET @PageNumber = @PageNumber -1 
SET @RowStart = @PageSize * @PageNumber + 1; 
SET @RowEnd = @RowStart + @PageSize - 1 ; 
With claim_user_info_paginate AS 
 ( SELECT userNbr, userName, 
   ROW_NUMBER() OVER (order by userNbr) as UserNumber 
   FROM claim_user_info ) 
select * 
from claim_user_info_paginate 
Where UserNumber >= @RowStart and UserNumber <= @RowEnd
END

我曾尝试循环查询,但不断得到相同的结果。有人能说出我在哪里做过更正吗。

我已经创建了我的存储过程,可以进行分页,将其与您的进行比较,然后尝试:

ALTER PROCEDURE [dbo].[Sp_get_persons] (@pageNo   INT, 
                                        @pageSize INT) 
AS 
  BEGIN 
      SELECT id, 
             name, 
             [desc], 
             [address], 
             phone, 
             email 
      FROM   (SELECT id, 
                     name, 
                     [desc], 
                     [address], 
                     phone, 
                     email, 
                     Row_number() 
                       OVER ( 
                         ORDER BY id ) AS RowNum 
              FROM   persons.dbo.person) person 
      WHERE  person.rownum BETWEEN ( ( @pageNo - 1 ) * @pageSize + 1 ) AND ( 
                                   @pageNo * @pageSize ) 
  END 

使用此选项卡值函数:

ALTER FUNCTION [dbo].[GetPagedData] 
(   
    -- Add the parameters for the function here
    @pagesize int, 
    @pageindex int
)
RETURNS TABLE 
AS
RETURN 
(

     SELECT TOP (@pagesize) * ,Row_number() Over(order by a.ID) as count FROM 
     (
          SELECT *,
          ROW_NUMBER() OVER (ORDER BY ID) AS num              
          FROM dbo.Employees where IsActive=1
     ) AS a
     WHERE num > @pageindex*@pagesize
)
像这样使用 从dbo.GetPagedData(pagesize,pageindex)中选择* i、 e从dbo.GetPagedData(20,0)中选择* 注意:页面索引从0开始。


在Java中,通过每次递增pageindex来循环此函数。

在循环中,您是否更改了sql字符串?因此,从字符串sql=“exec Paginate 10,1”;字符串sql=“exec Paginate 10,2”;或者至少使用一个计数器来增加页码?
ALTER FUNCTION [dbo].[GetPagedData] 
(   
    -- Add the parameters for the function here
    @pagesize int, 
    @pageindex int
)
RETURNS TABLE 
AS
RETURN 
(

     SELECT TOP (@pagesize) * ,Row_number() Over(order by a.ID) as count FROM 
     (
          SELECT *,
          ROW_NUMBER() OVER (ORDER BY ID) AS num              
          FROM dbo.Employees where IsActive=1
     ) AS a
     WHERE num > @pageindex*@pagesize
)