Sqlserver 페이지 나누기 저장 프로세스

2085 단어 sqlserver
  • 이상 정보//저장 프로세스 전송 값에 대한 "String[2]: Size 속성에 잘못된 크기 값 0,"오류가 있음)
    //          
  •  

    저장 프로세스 또는 함수'procGetEmployee'는 '@CustomerID' 인자가 필요하지만, 이 인자를 제공하지 않았습니다: command.CommandType = CommandType.StoredProcedure;
     
  • 저장 프로세스 - 현재 페이지와 페이지당 표시 줄 수 가져오기 - declare @startRow int, @endRow int--set @startRow = (@pageIndex - 1) * @pageSize +1--set @endRow = @startRow + @pageSize – 1
  • IF(OBJECT_ID('proc_Pager','P') IS NOT NULL)
       DROP PROC proc_Pager
    GO 
    CREATE PROC proc_Pager
    (
     @tabName VARCHAR(30),
     @pkName VARCHAR(10),
     @startIndex INT,
     @endIndex INT,
     @totalCount VARCHAR(10) OUT
    )
    AS
     DECLARE @c VARCHAR(500)
    
      --SET @c='SELECT '+@totalCount+'=count(*) FROM '+@tabName
      SET @c='SELECT count(*) FROM '+ @tabName
      EXEC(@c)
      
      SET @c=' SELECT * FROM 
        (SELECT ROW_NUMBER() OVER(ORDER BY '+@pkName+') as rowId, * FROM '+@tabName+') temp 
       WHERE temp.rowId between '+CAST(@startIndex AS VARCHAR(5))+' AND '+CAST(@endIndex AS VARCHAR(5)) 
       
       EXEC(@c)
    GO
  • 호출 메모리
    DECLARE @totalCount INT --SET @totalCount=0 EXEC proc_Pager'Customers','Customerid', 11,20, @totalCount OUT PRINT'총 행수'+CAST(@totalCount AS VARCHAR(5))
  • VS 호출 저장 프로세스
    DbHelperSqlServer db = new DbHelperSqlServer(); ParamsHelperSqlServer paras = new ParamsHelperSqlServer(); paras.Add("@tabName", "Customers"); paras.Add("@pkName", "CustomerID"); paras.Add("@startIndex", 11); paras.Add("@endIndex", 20);//저장 프로세스 전송 값 "String[2]: Size 속성에 잘못된 크기 값 0,"오류가 있음)//전송 매개 변수는 크기paras.Add("@totalCount",string.empty, System.SqlDbType.VarChar, 10, System.Data.ParameterDirection.output), var v = db.GetDataSet("proc Pager",paras.ListParameter, CommandTDure.Proce.Produre)를 지정해야 합니다.
  • 좋은 웹페이지 즐겨찾기