ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ASP.NET으로 게시판 만들기 2부
    Programing/Web 2008. 5. 13. 12:19

    일단 게시판 디자인을 하기전에 Q&A게시판이 구현되기 위해 사용될 페이지의 구성부터 다시 한번 살펴보자.

    사용자 삽입 이미지

    페이지의 구성은 위 그림과 같이 구성되어 질것이다.
    총 5개의 페이지가 필요하다는걸 알수 있고, 게시판 글보기 페이지에서 가장 많은 일을 해야 됨을 알수 있다.

    나름 준비가 끝났으니 본격적으로 게시판을 만들어 보자.
     
    우선 게시판 글쓰기 페이지부터 만들 예정인데 앞선 시간에 만든 데이터베이스와의 연결을 위한 연결 문자열을 VS에서 웹프로젝트 생성시 기본적으로 만들어지는 web.config 파일에 추가하자
    문자열은 다음과 같다.

    <connectionStrings>
        <add name="CHANY_DB" connectionString="
             Data Source=서버이름;
             Initial Catalog=DB이름;
             user id=아이디;
             Password=패스워드"
             providerName="System.Data.SqlClient"/>
      </connectionStrings>


    각각의 설정에 맞게<connectionStrings>태그 사이에 연결문자열을 추가 하였으면 Qna_write페이지를 만들어 보자.

    간단하게나마 글쓰기 페이지의 디자인이 완성되었다. 아래와 같다.

    사용자 삽입 이미지

    위의 디자인은 가장 아주아주 파일첨부가 가능한 게시판의 기본 폼이라 할수 있다.
    사용된 컨트롤은 다음과 같다.

    텍스트박스 총 4개 : 작성자(Name_tex), 비번(Pwd_tex), 제목(Title_tex), 내용(Content_tex),
    버튼 2개 : 확인(Save_btn), 취소(Cancel_btn)
    체크박스 1개 : S_check
    FileUpload 1개 : 파일찾기(텍스트박스 + 버튼) - (FileUpload)

    대략 보면 각각 무슨일을 해야되는지 금방 감이 올거라 믿는다.
    일단 모든 텍스트 박스에 먼가를 입력하고 확인버튼을 누르면 그대로 DB에 내용이 담겨져야 이 페이지의 기능을 수행할수 있게 된다.

    이제부터 가장 이페이지에서의 가장 핵심적인 부분인 '확인' 버튼의 기능을 만들어 보자.
    방금전에 말한대로 확인버튼은 텍스트박스의 모든 내용을 만들어둔 DB테이블안에 저장을 해야하는 임무를 가진 버튼이다.
    우선 확인버튼을 더블클릭해보자. 다음과 같은 이벤트처리 함수가 자동적으로 생성될 것이다.

    protected void Save_btn_Click(object sender, ImageClickEventArgs e)
        {
        }

    이제 이 함수 안에 텍스트박스안의 내용들을 모아모아서 DB로 저장하는 문구들로 코딩이 되어져야 한다. 개인적으로 Insert함수를 따로 만들어서 사용하기로 했다. Insert함수의 내용은 이렇다.
    저장할 쿼리문을 작성하여 실행시킨다.!!

    string sql =
    "Insert Into QnA_Table(Writer,Title,Content,Reper,Step,Depth,Pwd,
    FileName,ReadCount,DownCount,RegDate,DelFlag,Secret)" + "Values(@Writer,@Title,@Content,"
     + GetNewReper() + ",0,0,@Pwd,@FileName,0,0,getdate(),'N'," + SecretValue(secret) + ")";


    상당히 난감해 보이지만 위의 문장은 저장를 하기위한 쿼리문이다. SQL기본만 기본해도 무난하게 알수 있는 내용이다. 전체적으로 보면 쿼리문을 작성(sql)하고, 그 문구를 실행시키는 곳이 바로 이 함수인거다. 위의 쿼리문을 보면 별도로 GetNewReper(), SecretValue(secret)의 두 함수가 사용되었음을 알수 있다. 위의 함수는 각각 Reper , Secret의 값을 얻어오는 함수이다.

    또 다음과 같은 경우가 생길걸 대비하여 함수를 별도로 만들 필요가 있다.

    1. 여러곳에서 빈번하게 계산되거나 불러지게되는 값들은 함수 호출로 간단하게 표현하자

    2. 무슨 이벤트가 일어나면 해당 이벤트가 일어났는지에 대한 유무표시로 메시지박스를 띄우자

    3. 위의 스키마중 FileName항목은 NULL값이 허용된다. 따라서 자료를 올려도 되고, 안올려도 되는것이다. 만약 자료를 업로드 할거라면 어디에 할것이며, 파일이름은 어떻게 할것인지를 결정해야한다.
    여기서 중요한거는 어디에 할것이며 와 파일이름은 어떻게 이다.

     4. 게시물을 저장하는 Insert 함수를 따로 만들어 가독성을 좋게 할 필요성이 있다.


     PS . 원래의 계획은 하나하나 만들면서 블로그에 기록을 해 둘려고 했는데, 이렇게 하니 시간손실이 더 큰것 같다. 그래서 일단 내가하고자 하는 모든 기능을 한번 구현해 보고 복습삼아 정리하면서 이곳에 기록을 해둘 예정이다. 따라서 3부는 잠시 시간이 지난후에....^^;

    'Programing > Web' 카테고리의 다른 글

    PHP 간략 정리  (0) 2008.06.10
    ASP.NET으로 게시판 만들기 3부  (0) 2008.06.03
    SqlDataReader 객체 사용하기  (0) 2008.05.20
    FileUpload 컨트롤  (0) 2008.05.14
    Server.MapPath  (0) 2008.05.14
    ASP.NET으로 게시판 만들기 1부  (0) 2008.05.09
    유효성 검사 컨트롤 - RequiredFieldValidator 컨트롤  (0) 2008.05.02
    GridView 컨트롤  (0) 2008.04.30
    SqlDataSource 컨트롤  (0) 2008.04.30
    웹페이지와 DB를 연결하자.!!  (0) 2008.04.29
Designed by Tistory.