더북(TheBook)

13. 게시판의 글 검색의 결과 페이지인 BoardList.aspx에서 사용할 저장 프로시저 구문을 다음과 같이 작성한다.

▼  /dbo/Stored Procedures/DotNetNote/SearchNotes.sql

--[9] 게시판(DotNetNote)에서 데이터 검색 리스트 : SearchNotes
Create Procedure dbo.SearchNotes
  @Page Int,
  @SearchField NVarChar(25),
  @SearchQuery NVarChar(25)
As
  With DotNetNoteOrderedLists
  As
  (
      Select
            [Id], [Name], [Email], [Title], [PostDate],
            [ReadCount], [Ref], [Step], [RefOrder], [AnswerNum],
            [ParentNum], [CommentCount], [FileName], [FileSize],
            [DownCount],
          ROW_NUMBER() Over (Order By Ref Desc, RefOrder Asc)
          As 'RowNumber'
      From Notes
      Where (
          Case @SearchField
              When 'Name' Then [Name]
              When 'Title' Then Title
              When 'Content' Then Content
              Else
              @SearchQuery
          End
      ) Like '%' + @SearchQuery + '%'
  )
  Select
        [Id], [Name], [Email], [Title], [PostDate],
        [ReadCount], [Ref], [Step], [RefOrder],
        [AnswerNum], [ParentNum], [CommentCount],
        [FileName], [FileSize], [DownCount],
        [RowNumber]
  From DotNetNoteOrderedLists
  Where RowNumber Between @Page * 10 + 1 And (@Page + 1) * 10
  Order By Id Desc
Go

 

이상으로 테이블 및 저장 프로시저로 구성된 완성형 게시판 관련 스크립트를 모두 만들었다. SQL Server 데이터베이스 프로젝트에서 게시 메뉴를 통해 원하는 데이터베이스로 게시한다. 앞에서 작성한 쿼리문은 내가 ASP.NET 초기 버전 때부터 사용하던 구문이다. SQL Server 2014, 2016 전용 등 최신 쿼리문으로 구문을 변경해서 사용해도 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.