Blog Content

    티스토리 뷰

    04.ASP.NET - 기본형 게시판(5) : Delete(삭제) 페이지

    반응형
    Delete(삭제) :글쓴 내용 삭제하는 페이지

    Delete.aspx

    <div>

       <h3> 삭제</h3>

       <asp:Label ID="lblNum" runat="server" ForeColor="Red"/>

       글을 삭제하시겠습니까?<br />

       암호 :

       <asp:TextBox ID="txtPassword" runat="server"/>

       <asp:Button ID="btnDelete" runat="server" Text="삭제"

           OnClientClick="return confirm('정말로 삭제?');"

           onclick="btnDelete_Click" />

          

       <asp:Button ID="btnCancel" runat="server" Text="취소"

           onclick="btnCancel_Click"

           style="height: 21px" /><br />

          

       <asp:Label ID="lblError" runat="server" ForeColor="Red"/>

    </div>


    Delete.aspx.cs

    protected void Page_Load(object sender, EventArgs e)

    {

       // 넘겨져 번호 검사

       if (String.IsNullOrEmpty(Request["Num"]))

       {

           Response.Write("잘못된 요청입니다.");

           Response.End();

       }

       else

       {

           // 레이블에 넘겨져 번호 출력

           this.lblNum.Text = Request["Num"];

       }

    }

     

    protected void btnDelete_Click(object sender, EventArgs e)

    {

       if (IsPasswordCorrect())

       {

           SqlConnection conn = new SqlConnection(

               ConfigurationManager.ConnectionStrings

               ["ConnectionString"].ConnectionString);

     

           conn.Open();

     

           SqlCommand cmd = new SqlCommand("DeleteBasic", conn);

           cmd.CommandType = CommandType.StoredProcedure;

     

           // 파라미터 : List.aspx에서 넘겨온 쿼리스트링값

           cmd.Parameters.AddWithValue("@Num", Request["Num"]);

     

           cmd.ExecuteNonQuery(); // 삭제

     

           // 삭제 리스트로 이동

           Response.Redirect("List.aspx");

       }

     

       else

       {

           this.lblError.Text = "암호가 틀립니다.";

       }

    }

     

    // 번호와 암호가 맞으면 반환, 그렇지 않으면 거짓 반환

    private bool IsPasswordCorrect()

    {

       bool result = false;

       SqlConnection conn = new SqlConnection

           (ConfigurationManager.ConnectionStrings

           ["ConnectionString"].ConnectionString);

     

       conn.Open();

     

       SqlCommand cmd = new SqlCommand(

           "Select * From Basic Where Num = @Num And Password = @Password"

           ,conn);

      

       // 파라미터 추가

       cmd.Parameters.AddWithValue("@Num", Request["Num"]);

       cmd.Parameters.AddWithValue("@Password", txtPassword.Text);

      

       SqlDataReader dr = cmd.ExecuteReader();

     

       while (dr.Read()) // 데이터가 읽혀진다면, 번호와 암호가 맞음

       {

           result = true;

       }

       return result;

    }

     

    protected void btnCancel_Click(object sender, EventArgs e)

    {

       // 취소 버튼 클릭시 뒤로(상세 보기 페이지) 이동

       Response.Redirect("View.aspx?Num=" + Request["Num"]);

    }


    결과화면
       암호가 맞으면 해당 게시물 삭제

    [그림4-1]



    반응형

    Comments