¹Ú¿ëÁØ °»ç ´ÔÀÌ ¾²½Å ¿ø¹® ±ÛÀÔ´Ï´Ù.
À¯Áö±¸¹®¿¡¼ // ÄÚµå ½ÇÇàÁß ¿¡·¯°¡ ¹ß»ýÇÏ¿© ¿¹¿Üó¸® ÇÒ °æ¿ì¿¡µµ
ÀÚµ¿À¸·Î closeµÇ´Â°Ç°¡¿ä? ±¸¹®ÀÌ ¸ðµÎ ½ÇÇàÀÌ µÇÁö ¾Ê¾Æµµ µÇ´Â°Ç°¡¿ä?
using (Ä¿³Ø¼Ç ¿ÀÇÂ)
{
// ÄÚµå ½ÇÇà
try
{
//¿¡·¯¹ß»ý
}
catch
{
throw() // ¿¡¿Ü¸¦ Àü´Þ
}
}
(1)
ADO.NET Äڵ带 »ç¿ëÇÏ¿© DB ¿¬µ¿ ÄÚµå ±¸Çö½Ã
Connection °³Ã¼¿Í DataReader °³Ã¼´Â
¹Ýµå½Ã Close() ¸Þ¼µå¸¦ È£ÃâÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
´Ù¸¸, ¸í½ÃÀûÀ¸·Î ÄÚµå´Ü¿¡¼ ±¸ÇöµÇÁö ¾ÊÀ¸¸é
¾Ë¾Æ¼ Close() ½ÃÄÑÁÖ±ä ÇÕ´Ï´Ù¸¸,
¸íÈ®ÇÏ°Ô Open() ÈÄ Close() ½ÃÄÑÁÖ´Â ÄÚµå ÆÐÅÏÀº ¸» ±×´ë·Î
°ø½Ä°ú °°Àº ÀýÂ÷·Î º¸½Ã¸é µË´Ï´Ù.
(2)
¸¸¾à, Open() ÈÄ Close() Àü¿¡ ¹ß»ýµÇ´Â ¿¹¿Ü¿¡ ´ëÇÑ Ã³¸®¸¦ ±¸ÇöÇÏ°íÀÚÇÑ´Ù¸é,
try ~ catch ~ finally ÀýÀ» »ç¿ëÇÏ¿©
try Àý¿¡¼ Open()À» ½ÇÇàÇÏ°í
finally Àý¿¡¼ Close()¸¦ ½ÇÇàÇÏ´Â Äڵ带 ±¸ÇöÇÒ ¼öµµ ÀÖ±¸¿ä.
using (Ä¿³Ø¼Ç ¿ÀÇÂ)
{
// ÄÚµå ½ÇÇà
}
ÇüÅÂÀÇ ±¸¹®À¸·Îµµ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.
±è´Þ±â ´ÔÀÌ ¾²½Å ¿ø¹® ±ÛÀÔ´Ï´Ù.
ÁúÀÇ »çÇ×ÀÌ ÀÖ½À´Ï´Ù.
1.¾Æ·¡ page_load ADO.NETÀÇ connectionÀº ¹Ýµå½Ã close()¸¦ ÇØÁà¾ßÇÏ´ÂÁö¿ä?
ÇØ´ç ±¸¹®ÀÌ ¸ðµÎ ½ÇÇà µÉ °æ¿ì °¡ºñÁö Ä÷ºÅÍ¿¡ ÀÇÇؼ ÀÚµ¿À¸·Î ÇØÁ¦°¡ µÇ´ÂÁö ¿ä?
2. ¾Æ·¡¿Í °°Àº ¹®Á¦°¡ ¹ß»ýÇßÀ» °æ¿ì ÀÚµ¿À¸·Î close()ÇÒ¼ö ÀÖ´Â µðÀÚÀÎ ÆÐÅÏÀ̳ª ¹æ¹ýÀ» ¾Ë·ÁÁÖ¼¼¿ä.
protected void Page_Load(object sender, EventArgs e)
{
// [1] º¯¼ö ¼±¾ð ¹× ÃʱâÈ
int intcount = 0;
string strresult = "success";
// [2] µ¥ÀÌÅͺ£À̽º ¿±â
DBconnst1 conn = new DBconnst1();
conn.Open();
// [3] SQL ¹® ½ÇÇà
string sql = string.Empty;
sql = "SELECT count(nkey) as f_count " +
"FROM item WHERE o_no=@o_no and o_state <> 2";
// [4] ÆĶó¹ÌÅÍÁöÁ¤ - ÆĶó¹ÌÅÍ ÄÝ·º¼ÇÀ» »ý¼º
List parameters = new List();
parameters.Add(new SqlParameter("@o_no", parao_no));
SqlDataReader reader = conn.ExecuteReader(sql, 0, parameters, true);
// [5] ½ÇÇà °á°ú Ãâ·Â
while (reader.Read())
{
intcount = int.Parse(reader["f_count"].ToString());
}
// [6] µ¥ÀÌÅͺ£À̽º ´Ý±â
reader.Close();
}