ASP.NET

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

Godffs 2009. 10. 7. 18:13
반응형
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]



반응형