5. ±Û»èÁ¦ - Delete.aspx
ÆäÀÌÁö Ãß°¡/ÄÁÆ®·Ñ ¼³Á¤
Áö±Ý²¯ µû¶óÇØ ¿À¼Ì´Ù¸é ±Û »èÁ¦ ÆäÀÌÁö´Â Á÷Á¢ ¸¸µå½Ç¼ö ÀÖÀ» µí ÇÕ´Ï´Ù. ¾Õ °Á ±Ûº¸±â ¶õ¿¡¼, ±Û »èÁ¦ ¸µÅ©¸¦ Ŭ¸¯Çϸé
Delete.aspx?n=±Û¹øÈ£ ½ÄÀ¸·Î Delete.aspx ¸¦ È£ÃâÇϵµ·Ï ÇÏ¿´À¸´Ï, ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÑÈÄ
Request.QueryString["n"] °ª¿¡ ÇØ´çÇÏ´Â ±ÛÀÇ ºñ¹Ð¹øÈ£¿Í ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎÇϰí, ÀÏÄ¡ÇÏ¸é ±ÛÀ» »èÁ¦Çϵµ·Ï ÇÏ¸é µÇ°Ú½À´Ï´Ù.
¼Ö·ç¼Ç Ž»ö±â¿¡¼ Delete.aspx ¶ó´Â ÆäÀÌÁö¸¦ Ãß°¡Çϰí, ±Ûº¸±â ÆäÀÌÁö °æ¿ì¿Í ¸¶Âù°¡Áö·Î ÆäÀÌÁö ·¹À̾ƿôÀ» FlowLayoutÀ¸·Î
¹Ù²ß´Ï´Ù.
±×¸®°í µµ±¸»óÀÚ¿¡¼ Table À» °¡Á®´Ù ³õ°í ·¹À̾ƿôÀ» ÀâÀ¸¸é¼, Web Forms ¶õ¿¡¼ Label, TextBox, Button,
RequiredFieldValidator ¸¦ °¡Á®´Ù ³õ¾Æ ´ÙÀ½ ±×¸²Ã³·³ ¸¸µì´Ï´Ù.

Label À§Ä¡¿¡´Â ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì¿¡ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ·Á ÇÕ´Ï´Ù. TextBox ¶õÀº ºñ¹Ð¹øÈ£ ÀԷ¶õÀ̰í, ¹öưÀº '»èÁ¦'
¹öưÀÔ´Ï´Ù. ºñ¹Ð¹øÈ£¸¦ ²À ÀÔ·ÂÇϵµ·Ï Çϱâ À§ÇØ RequiredFieldValidator¸¦ ½è°í¿ä. °¢°¢ÀÇ ¼Ó¼ºÀ» ´ÙÀ½Ã³·³ ¹Ù²ß´Ï´Ù.
¡¡
ÄÁÆ®·Ñ |
(ID) |
¼Ó¼º |
Label |
lblMessage |
Text : ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä |
TextBox |
txtPassword |
TextMode : Password |
Button |
btnDelete |
Text : »èÁ¦ |
RequiredFieldValidator |
(º¯°æ¾ÈÇÔ) |
ControlToValidate : txtPassword
ErrorMessage :
* ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä |
ÆíÁýÀÌ ³¡³ ÈÄ¿£, ½ÇÇàÇØ¼ RequiredFieldValidator °¡ Àß ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇØº¸¼¼¿ä.
DB°ü·Ã °³Ã¼ ¼³Á¤
±×¸®°í DB °ü·Ã °´Ã¼¸¦ Ãß°¡ÇÕ´Ï´Ù. Áö³ °ÁÂ, View.aspx °æ¿ì¿Í °ÅÀÇ °°½À´Ï´Ù. µµ±¸»óÀÚ µ¥ÀÌÅͶõ¿¡¼ SqlConnection Çϳª,
SqlCommand µÎ°³¸¦ ²ø¾î´Ù ³õ½À´Ï´Ù.
SqlConnectionÀº DB¿¬°áÀ» À§ÇÑ °´Ã¼ÀÔ´Ï´Ù. View.aspx °æ¿ì¿Í ¶È°°ÀÌ ¼³Á¤ÇÕ´Ï´Ù. (Name) À» dbConnectionÀ¸·Î, Dynamic Properties ¶õ È®Àå, ConnectionString ¶õÀÇ [...] ¹öưÀ» Ŭ¸¯, 'µ¿Àû ¼Ó¼º' â¿¡¼ '±¸¼º
ÆÄÀÏÀÇ Å°¿¡ ¼Ó¼º ¸ÅÇÎ' üũ¹Ú½º¸¦ ¼±ÅÃÇØ¼ dbConnection.ConnectionString Ű¿¡ ¸ÅÇÎÇϰí, 'µ¥ÀÌÅÍ'¶õÀÇ
ConnectionString¿¡ °ªÀÌ Àß µé¾î°¡ ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
SqlCommand ´Â ±ÛÀ» »èÁ¦Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. ´ÙÀ½Ã³·³
¼³Á¤ÇÕ´Ï´Ù.
¼Ò½º ÆíÁý
»èÁ¦ ¹öưÀ» ´õºí Ŭ¸¯ÇÕ´Ï´Ù. ¼Ò½º º¸±â·Î ÀüȯµÇ°í, btnDelete_Click À̶õ À̺¥Æ®Ã³¸®
¸Þ¼µå°¡ Ãß°¡µÉ°Ì´Ï´Ù. ±× ¸Þ¼µå¿¡ ´ÙÀ½°ú °°Àº ¼Ò½º¸¦ Ãß°¡ÇÕ´Ï´Ù. ÆÄ¶õ»ö ºÎºÐÀÌ Ãß°¡ÇÒ ºÎºÐÀÔ´Ï´Ù.
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(IsValid)
{
int seq = 0;
string errMsg="";
try
{
seq = int.Parse(Request.QueryString["n"]);
}
catch(Exception) {}
if(seq>0)
{
dbCommandDeleteArticle.Parameters["@seq"].Value=seq;
dbCommandDeleteArticle.Parameters["@pwd"].Value=txtPassword.Text;
dbConnection.Open();
int rowAffected=dbCommandDeleteArticle.ExecuteNonQuery();
dbConnection.Close();
if(rowAffected<1)
{
errMsg="ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù";
}
}
else
{
errMsg="À߸øµÈ ±Û¹øÈ£ÀÔ´Ï´Ù";
}
if(errMsg!="")
{
lblMessage.Text="<font color=red><b>"+errMsg+"</b></font>";
}
else
{
Response.Redirect("list.aspx");
}
}
}
Write.aspx °æ¿ì ¿Í ºñ½ÁÇϰÔ, ÆäÀÌÁöÀÇ IsValid ¼Ó¼ºÀ» È®ÀÎÇØ¼ Á¤È®È÷ ÀÔ·ÂÇÑ °æ¿ì¿¡¸¸ ( Áï, ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇÑ °æ¿ì¿¡¸¸
) ¼Ò½º¸¦ ½ÇÇàÇϵµ·Ï ÇÕ´Ï´Ù. GET ¹æ½ÄÀ¸·Î ³Ñ¾î¿Â ±Û¹øÈ£( Request.QueryString["n"] )¿Í, ÀÔ·ÂÇÑ ºñ¹Ð¹øÈ£¸¦ ÆÄ¶ó¸ÞÅÍ
°ªÀ¸·Î ÇØ¼ dbCommandDeleteArticle ¸í·É°´Ã¼¸¦ ½ÇÇàÇÕ´Ï´Ù. SqlCommandÀÇ ExecuteNonQuery() ¸Þ¼µå´Â
¸í·ÉÀ» ½ÇÇàÇÑ ÈÄ¿¡, ¸í·ÉÀ» ÅëÇØ ¹Ù²ï ·¹ÄÚµåÀÇ ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù. ¸¸¾à °ªÀÌ ¹Ù²ï ·¹Äڵ尡 ¾ø´Ù¸é ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â °ÍÀÌ¶ó °¡Á¤Çصµ
µÇ°ÚÁÒ. ( ¹°·Ð, Á¸ÀçÇÏÁö ¾Ê´Â ±Û¹øÈ£ÀÎ °æ¿ì¿¡µµ ±×·²¼ö ÀÖ½À´Ï´Ù¸¸, »ç¿ëÀÚ°¡ ÀϺη¯ ±×·¯Áö ¾Ê´ÂÇÑ ±×·¯ÇÑ °æ¿ì´Â Àß ÀϾÁö ¾ÊÀ» °Ì´Ï´Ù )
ÀÌÁ¦ ±Û »èÁ¦ ÆäÀÌÁö°¡ ¿Ï¼ºµÇ¾ú½À´Ï´Ù. ½ÇÇàÇØ¼, ±Û¸ñ·Ï¿¡¼ ¾Æ¹« ±ÛÀ» ¼±ÅÃÇØ¼ ±ÛÀ» È®ÀÎ(View.aspx) ÇϽŠÈÄ, ¾Æ·¡ ¿ÞÂÊ¿¡ ÀÖ´Â
»èÁ¦ ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ±Û »èÁ¦ ÆäÀÌÁö°¡ ½ÇÇàµË´Ï´Ù. ºñ¹Ð¹øÈ£¸¦ ÀÔ·ÂÇØ¼ »èÁ¦ÇØ º¸¼¼¿ä.

À§ ±×¸²Àº ºñ¹Ð¹øÈ£¸¦ ¾Æ¹«·¸°Ô³ª ÀÔ·ÂÇÑ È¸éÀÔ´Ï´Ù. ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù´Â ¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù. ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏ¸é ±ÛÀÌ »èÁ¦µÇ°í, ¸ñ·Ï
ÆäÀÌÁö(List.aspx)·Î À̵¿ÇÕ´Ï´Ù.
´ÙÀ½ °Á¿¡¼± ù°Á¿¡ ¸¸µé¾ú´ø Write.aspx ÆäÀÌÁö¸¦ ÀϺΠ¼öÁ¤Çؼ ±ÛÀ» ¼öÁ¤ÇÏ´Â ÆäÀÌÁö¸¦ ±¸ÇöÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
|