¾È³çÇϼ¼¿ä.
¾î´Àµ¡ º½ÀÌ ¿Â °Í °°³×¿ä.
»¡¸® »¡¸® °Á¸¦ ¿Ã·Á¼ °£´ÜÇÑ °Á¸¦ ³¡³»¾ß °Ú´Ù°í »ý°¢Àº ¸¹ÀÌ Çϰí Àִµ¥ ±×°Ô ½±Áö°¡ ¾Ê³×¿ä.
¿À´Ã±îÁö ÀÌ·¸°Ô µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â °ÍÀ¸·Î .NET Data Provider¿¡ ´ëÇØ¼´Â °£´ÜÇÏ°Ô ¸¶Ä¡°í, ´ÙÀ½ °ÁºÎÅÍ´Â DataSet¿¡ ´ëÇØ¼ ¾Ë¾Æº¸´Â °ÍÀ¸·Î ÇϰڽÀ´Ï´Ù.
±×·³ ½ÃÀÛÇϰڽÀ´Ï´Ù.
½ÃÀÛ Àü¿¡ Àá½Ã Àâ´ã... Á¦ Ã¥ÀÌ À̹ø ÁÖ ¾È¿¡ ³ª¿À°Ú³×¿ä... °Á¿¡¼º¸´Ù ´õ ÀÚ¼¼ÇÑ ³»¿ëÀÌ ÀÖ´Â Á¦ Ã¥, ¸¹Àº ¼º¿ø ¹Ù¶ø´Ï´ç~~~ ^^;;
DataReader Ŭ·¡½º´Â °£·«ÇÏ°Ô ¸»ÇÏ¸é µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áµÈ »óÅ¿¡¼ Àбâ Àü¿ë( read-only ), ÀüÁø Àü¿ë( forward-only )ÀÇ ·¹ÄÚµå¼ÂÀ¸·Î ºÒ·¯¿À´Â Ŭ·¡½ºÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â ±â´ÉÀ» Çϴ Ŭ·¡½º Áß¿¡ °¡Àå ¼º´ÉÀÌ ÁÁÀº °ÍÀÔ´Ï´Ù. ´ÙÀ½Àº DataReaderÀÇ Æ¯Â¡ÀÔ´Ï´Ù.
DataReader °´Ã¼ÀÇ ·¹ÄÚµå¼ÂÀº Àбâ Àü¿ëÀÔ´Ï´Ù.
DataReader °´Ã¼ÀÇ ·¹ÄÚµå¼ÂÀº ÀüÁø Àü¿ëÀÔ´Ï´Ù. µû¶ó¼ ÆäÀÌ¡À» »ç¿ëÇϰųª óÀ½ÀÇ ·¹ÄÚµå·Î °¡´Â µîÀÇ ´Ù¾çÇÑ ±â´ÉÀº °¡Áö°í ÀÖÁö ¾Ê½À´Ï´Ù.
DataReader°¡ ¿·ÁÀÖ´Â µ¿¾ÈÀº Connection °´Ã¼¸¦ ÀÌ¿ëÇØ¼ ´Ù¸¥ ÀÏÀ» ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ´Â DataReader°¡ ¿¬°á ÁöÇâÀûÀÎ ·¹ÄÚµå¼ÂÀ̱⠶§¹®ÀÔ´Ï´Ù.
|
DataReader¸¦ ÀÌ¿ëÇØ¼ ´Ü¼øÇÏ°Ô ·¹ÄÚµå¼ÂÀ» °¡Á®¿Ã ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó, ¿©·¯ °³ÀÇ ·¹ÄÚµå¼ÂÀ» °¡Á®¿Ã ¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÀúÀå ÇÁ·Î½ÃÀú¸¦ »ç¿ëÇØ¼ ·¹ÄÚµå¼ÂÀ» °¡Á®¿Ã ¼öµµ ÀÖ½À´Ï´Ù. À̹ø °Á¿¡¼´Â °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â Command °´Ã¼ÀÇ ExecuteReader()¸¦ ÀÌ¿ëÇÑ ¿¹Á¦¸¦ ´Ù·çµµ·Ï ÇϰڽÀ´Ï´Ù.
´ÙÀ½Àº DataReader¸¦ ÀÌ¿ëÇØ¼ ·¹ÄÚµå¼ÂÀ» °¡Á®¿À´Â ¼ø¼ÀÔ´Ï´Ù.
¨Í Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
¨Î Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
¨Ï Command °´Ã¼ÀÇ CommandText ÇÁ·ÎÆÛƼ¿¡ Äõ¸®¹®À̳ª ÀúÀå ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¨Ð Command °´Ã¼ÀÇ CommandType ÇÁ·ÎÆÛƼ¿¡ ½ÇÇàµÉ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¨Ñ Command °´Ã¼ÀÇ Connection ÇÁ·ÎÆÛƼ¿¡ Connection °´Ã¼¸¦ ¼³Á¤ÇØÁÝ´Ï´Ù.
¨Ò Connection °´Ã¼ÀÇ Open() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ¿¾îÁÝ´Ï´Ù.
¨Ó Command °´Ã¼ÀÇ ExecuteReader() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÇØ´ç Äõ¸®¹®À̳ª ÀúÀå ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇØ¼ DataReader °´Ã¼¿¡ ·¹ÄÚµå¼ÂÀ» ³Ö½À´Ï´Ù.
¨Ô DataReaderÀÇ Read() ¸Þ¼µå¸¦ È£ÃâÇØ¼ °¢°¢ÀÇ ·¹Äڵ忡 ´ëÇÑ Ã³¸®¸¦ ÇÕ´Ï´Ù.
¨Õ ÇØ´ç 󸮰¡ ³¡³µÀ¸¸é DataReaderÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© DataReader °´Ã¼¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
¨Ö Connection °´Ã¼ÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
|
À̹ø¿¡µµ ¿ª½Ã Äõ¸®¹®À» Á÷Á¢ ÀÔ·ÂÇØ¼ µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â ¹æ¹ý°ú sp¸¦ ÀÌ¿ëÇØ¼ µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â ¹æ¹ýÀ» ¸ðµÎ ÀÌ¿ëÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
´ÙÀ½Àº µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â spÀÔ´Ï´Ù.
Create Proc up_SelectAllAddress
As
Begin
Select *
From Address
End
|
¹°·Ð ´õ º¹ÀâÇÑ sp¸¦ »ç¿ëÇÒ ¼öµµ ÀÖÁö¸¸ °£´ÜÇÏ°Ô »ç¿ëÇϱâ À§Çؼ À§¿Í °°Àº sp¸¦ ÀÛ¼ºÇß½À´Ï´Ù.
À§ÀÇ sp´Â Àá½Ã ÈÄ¿¡ ´Ù·çµµ·Ï ÇÏ°í ¸ÕÀú Á÷Á¢ Äõ¸®¹®À» ÀÔ·ÂÇØ¼ ¸¸µé¾îº¸µµ·Ï ÇϰڽÀ´Ï´Ù. »õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ÇÁ·ÎÁ§Æ®ÀÇ À̸§À» DataReaderEx·Î ÇÕ´Ï´Ù. »õ ÇÁ·ÎÁ§Æ® ´ëÈ»óÀÚ´Â ¾ÕÀÇ °Á¿¡¼ ¸î ¹ø º¸¿©µå·ÈÀ¸´Ï±î ÀÌÁ¦ºÎÅÍ´Â ±×¸²À¸·Î º¸¿©µå¸®Áö´Â ¾Ê°Ú½À´Ï´Ù.
»õ ÇÁ·ÎÁ§Æ®°¡ »ý¼ºÀÌ µÇ¸é ÄÚµå ÆíÁý±â¿¡ ´ÙÀ½ÀÇ Äڵ带 ÀÔ·ÂÇÕ´Ï´Ù.
using System;
using System;
using System.Data;
using System.Data.SqlClient;
namespace DataReaderEx
{
public class Class1
{
[STAThread]
static void Main(string[] args)
{
// Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
SqlConnection connection = new SqlConnection( "server=localhost;"
+ "database=Study;uid=sa;pwd=tndls" );
GetRecordByTSql( connection );
}// Main ¸Þ¼µå ³¡
static void GetRecordByTSql( SqlConnection connection )
{
// Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
SqlCommand command = new SqlCommand( "Select * From Address", connection );
// Command °´Ã¼ÀÇ CommandType ÇÁ·ÎÆÛƼ¿¡ ½ÇÇàµÉ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
command.CommandType = CommandType.Text;
// Connection °´Ã¼ÀÇ Open() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ¿¾îÁÝ´Ï´Ù.
connection.Open();
// Command °´Ã¼ÀÇ ExecuteReader() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÇØ´ç Äõ¸®¹®À̳ª
// ÀúÀå ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇØ¼ DataReader °´Ã¼¿¡ ·¹ÄÚµå¼ÂÀ» ³Ö½À´Ï´Ù.
SqlDataReader reader = command.ExecuteReader();
// DataReaderÀÇ Read() ¸Þ¼µå¸¦ È£ÃâÇØ¼ °¢°¢ÀÇ ·¹Äڵ忡 ´ëÇÑ Ã³¸®¸¦ ÇÕ´Ï´Ù.
while ( reader.Read() )
{
Console.WriteLine( "{0}\t{1}\t{2}", reader["ID"], reader["Name"]
, reader["Email"] );
}
// ÇØ´ç 󸮰¡ ³¡³µÀ¸¸é DataReaderÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿©
// DataReader °´Ã¼¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
reader.Close();
// Connection °´Ã¼ÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
connection.Close();
} // GetRecordByTSql ¸Þ¼µå ³¡
} // Ŭ·¡½º ³¡
} |
¾î¶²°¡¿ä? ±âÁ¸ÀÇ RecordSet°ú´Â ´Ù¼Ò Â÷À̰¡ Á¶±Ý ÀÖÁÒ?
±×·¡µµ °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä. ±× ³ÑÀÌ ±× ³ÑÀ̶ø´Ï´Ù. ^^
ÀÏ´Ü ÁÖÀÇ ±í°Ô º¸½Ç ºÎºÐÀº ´ÙÀ½ÀÇ µÎ °¡Áö Á¤µµ ¹Û¿¡ ¾øÀ» °Í °°³×¿ä...
// Command °´Ã¼ÀÇ ExecuteReader() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÇØ´ç Äõ¸®¹®À̳ª
// ÀúÀå ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇØ¼ DataReader °´Ã¼¿¡ ·¹ÄÚµå¼ÂÀ» ³Ö½À´Ï´Ù.
SqlDataReader reader = command.ExecuteReader();
|
À§ÀÇ ¼Ò½º¿¡¼ º¸¸é Command °´Ã¼ÀÇ ExecuteReader() ¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼ DataReader °´Ã¼¿¡ ·¹Äڵ带 ³Ö¾îÁÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖÁÒ? ±âÁ¸ÀÇ RecordSetÀº Open() À¸·Î ·¹Äڵ带 °¡Á®¿À´Â °Í°ú´Â ¾à°£ ´Ù¸¥ ¹æ½ÄÀ» º¸À̰í Àֳ׿ä.
// DataReaderÀÇ Read() ¸Þ¼µå¸¦ È£ÃâÇØ¼ °¢°¢ÀÇ ·¹Äڵ忡 ´ëÇÑ Ã³¸®¸¦ ÇÕ´Ï´Ù.
while ( reader.Read() )
{
Console.WriteLine( "{0}\t{1}\t{2}", reader["ID"], reader["Name"]
, reader["Email"] );
}
|
ÀÌ ¼Ò½º ¿ª½Ã Á» ´Ù¸£ÁÒ? RecordSetÀº EOF ¶Ç´Â BOF¸¦ È®ÀÎÇÏ°í ·¹Äڵ尡 ÀÖÀ» ¶§¿¡¸¸ ·çÇÁ¸¦ µ¹ ¼ö ÀÖµµ·Ï ±¸ÇöÇØ¾ß Çߴµ¥, DataReader °´Ã¼ÀÇ Read() ¸Þ¼µå¸¦ È£ÃâÇÔÀ¸·Î½á ±× ³ëµ¿À» ÁÙÀÏ ¼ö ÀÖ°Ô ‰ç½À´Ï´Ù.
Read() ¸Þ¼µå´Â ·¹Äڵ尡 ÀÖÀ» °æ¿ì¿¡´Â true¸¦ ¸®ÅÏÇÏ°í ¾øÀ» °æ¿ì¿¡´Â false¸¦ ¸®ÅÏÇØ¼ °³“uÀÚ°¡ ±× ¸®ÅϰªÀ¸·Î ±¸ÇöÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
¸¹ÀÌ ÁÁ¾ÆÁ³ÁÒ?
// ÇØ´ç 󸮰¡ ³¡³µÀ¸¸é DataReaderÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿©
// DataReader °´Ã¼¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
reader.Close();
|
¿ª½Ã ¸®¼Ò½º¸¦ »ç¿ëÇßÀ¸¸é ¸®¼Ò½º¸¦ ¹ÝȯÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
ÀÌÁ¦ ºôµå¸¦ ÇϽðí ( Ctrl + Shift + B ) ½ÇÇàÀ» ÇØ º¸¼¼¿ä. ( Ctrl + F5 )
ÀÚ, À§¿Í °°ÀÌ °á°ú ȸéÀÌ ³ª¿À³ª¿ä?
³Ê¹« °£´ÜÇÏÁÒ?
¿©·¯ºÐ Áß¿¡´Â "¿Ö ÀÚ²Ù Äָܼ¸ Çϴ°žß?" ¶ó°í ºÒÆòÇϽô ºÐÀÌ °è½ÇÁö ¸ð¸£°Ú³×¿ä.
ÇÏÁö¸¸ ÀÌ·¸°Ô ÄܼÖÀ» ÇÏ°í ³ª¸é ³ªÁß¿¡ À©µµ¿ì³ª À¥ ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱⰡ ÈξÀ ½¬¿öÁú °ÍÀ̶ó´Â °ÍÀ» ¾Ë°Ô µÉ °Å¿¹¿ä.
À̹ø¿¡´Â sp¸¦ ÀÌ¿ëÇØ¼ ·¹Äڵ带 °¡Á®¿Àµµ·Ï ÇϰڽÀ´Ï´Ù.
À§ÀÇ ¼Ò½º¸¦ ¾à°£ ¼öÁ¤Çϵµ·Ï ÇϰڽÀ´Ï´Ù.
¼Ò½º¿¡¼ ´ÙÀ½ÀÇ ¸Þ¼µå¸¦ Çϳª Ãß°¡ÇÕ´Ï´Ù. ¸Þ¼µåÀÇ À̸§Àº GetRecordBySP ÀÔ´Ï´Ù.
static void GetRecordBySP( SqlConnection connection )
{
// Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
SqlCommand command = new SqlCommand( "up_SelectAllAddress", connection );
// Command °´Ã¼ÀÇ CommandType ÇÁ·ÎÆÛƼ¿¡ ½ÇÇàµÉ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
command.CommandType = CommandType.StoredProcedure;
// Connection °´Ã¼ÀÇ Open() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ¿¾îÁÝ´Ï´Ù.
connection.Open();
// Command °´Ã¼ÀÇ ExecuteReader() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ÇØ´ç Äõ¸®¹®À̳ª
// ÀúÀå ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇØ¼ DataReader °´Ã¼¿¡ ·¹ÄÚµå¼ÂÀ» ³Ö½À´Ï´Ù.
SqlDataReader reader = command.ExecuteReader();
Console.WriteLine( "==== SP¸¦ ÀÌ¿ëÇØ¼ °¡Á®¿Â ·¹ÄÚµå ====" );
// DataReaderÀÇ Read() ¸Þ¼µå¸¦ È£ÃâÇØ¼ °¢°¢ÀÇ ·¹Äڵ忡 ´ëÇÑ Ã³¸®¸¦ ÇÕ´Ï´Ù.
while ( reader.Read() )
{
Console.WriteLine( "{0}\t{1}\t{2}", reader["ID"], reader["Name"]
, reader["Email"] );
}
// ÇØ´ç 󸮰¡ ³¡³µÀ¸¸é DataReaderÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿©
// DataReader °´Ã¼¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
reader.Close();
// Connection °´Ã¼ÀÇ Close() ¸Þ¼µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ´Ý¾ÆÁÝ´Ï´Ù.
connection.Close();
}
|
À§¿¡¼ º¼µåü·Î ó¸®ÇÑ µÎ ºÎºÐ¸¸ Á¶±Ý ´Ù¸¨´Ï´Ù.
Äõ¸®¹®À» ¼³Á¤ÇÏ´Â ¹æ¹ýÀε¥ À§¿Í °°ÀÌ sp ¸¦ »ç¿ëÇÒ ¶§¿¡´Â ¹Ýµå½Ã Command °´Ã¼ÀÇ CommandTypeÀ» StoredProcedure¶ó°í ¸í½Ã¸¦ ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ÀÏ¹Ý Äõ¸®¹®À¸·Î ÀνÄÇØ¼ ¿¡·¯°¡ ¹ß»ýÇϰŵç¿ä...
À§¿¡¼ ÀÛ¼ºÇÑ ¸Þ¼µå¸¦ Main ¸Þ¼µå¿¡¼ È£ÃâÇÏ´Â Äڵ带 Ãß°¡Çϰí ÇÁ·Î±×·¥À» ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù.
À̹ø °Á¿¡ »ç¿ëÇÑ ¼Ò½º ÆÄÀÏÀº Á¦ ȨÆäÀÌÁöÀÇ °ø°³ ¼Ò½º ÀÚ·á½Ç¿¡¼ ´Ù¿îÀ» ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
°£´ÜÇÏÁö¸¸ DataReader Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ´ÙÀ½¿¡´Â DataSet¿¡ ´ëÇÑ °£´ÜÇÑ ³»¿ëÀ» ÁغñÇØº¸°Ú½À´Ï´Ù.
¿©·¯ºÐµé ¸ðµÎ ÁÁÀº ÇÏ·ç µÇ½Ã±¸¿ä...
±×·³ À̸¸...
Written By ±ôÂïÀÌ
HomePage : http://www.cuteguy.pe.kr
Back
|