lecture Home > ASP.NET > ±ôÂïÀÌÀÇ ADO.NET

±ôÂï¾Æ, ADO.NET??? ADO.NET!!!

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2002³â 03¿ù 04ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2002³â 03¿ù 04ÀÏ

   ÀÛ¼ºÀÚ : ±ôÂïÀÌ(¹Ú ¼öÀÎ)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : µ¥ÀÌÅͺ£À̽º¿¡ ¸í·ÉÀ» ³»¸®ÀÚ

°­Á Àü Å¿ÀÀÇ Àâ´ã>

±â´ëÇϽöó.. Â¥ÀÜ!! Å¿ÀÀÇ À¥ ¼­ºñ½º °­ÁÂ!!! Â¥ÀÜ!! ¾ðÁ¦??? ±×·± ¿¹¸®ÇÑ... -_-+ (È÷Á×)


¾È³çÇϼ¼¿ä.
Á¦ µÎ¹øÂ° °­Á°¡ ¿Ã¶ó°¡°í ¶Ç ¸¹Àº ½Ã°£ÀÌ Èê·¶³×¿ä. ¸ðµç °­Á¸¦ »¡¸® ¿Ã¸®°Ú´Ù°í »ý°¢À» Çϰí Àִµ¥ ±×°Ô ±×¸® ½±°Ô µÇÁö°¡ ¾Ê³×¿ä. ¾Æ¹«Æ° ÀÌÁ¦ºÎÅÍ¶óµµ ´õ »¡¸® ¿Ã¸± ¼ö ÀÖµµ·Ï ³ë·ÂÇϰڽÀ´Ï´Ù. °­Á¸¦ ½ÃÀÛÇϱâ Àü¿¡ ¾î¶² ºÐ²²¼­ Áú¹®ÇϽг»¿ë Áß¿¡¼­ °­Á ³»¿ë´ë·Î Çߴµ¥ ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ³­´Ù°í ÇϽŠºÐÀÌ °è¼Ì½À´Ï´Ù.

using System.Data.SqlClient;¸¦ »ç¿ëÇÒ¶§ ´ÙÀ½°ú °°ÀÌ ¿¡·¯°¡ ³³´Ï´Ù. Á¶¾ðºÎʵ右´Ï´Ù.
--------------------------------------------------------------------------------------------------
E:\vb7.0\vc\net\ConnectionEx\Class1.cs(2): The type or namespace name 'Data' does not exist in the class or namespace 'System'

ÀÌ·± ¿¡·¯´Â .NET ¹öÀü ¶§¹®¿¡ ±×·¸°Åµç¿ä. Àü ºñÁÖ¾ó ½ºÆ©µð¿À ´å³Ý RTM À¸·Î ÁøÇàÇϰí ÀÖ½À´Ï´Ù. º£Å¸ 2 À̻󿡼­´Â ¹«¸®¾øÀÌ µ¹¾Æ°¥ °Å¿¹¿ä.

À̹ø¿¡ ´Ù·ê ³»¿ëÀº µ¥ÀÌÅͺ£À̽º¿¡ ¿©·¯°¡Áö ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Â °Í¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ±âÁ¸¿¡ ADO ¿Í ÇÔ²² ASP ¸¦ ´Ù·ïº¸½Å ºÐÀ̶ó¸é ( Á¦ °­Á¸¦ º¸½Å ºÐÀ̶ó¸é Àß ¾Ë°í °è½Å ^^ ) Command °´Ã¼¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù. ADO.NET¿¡¼­ÀÇ Command °´Ã¼´Â ÀÌÀü°ú´Â ±×¸® ´Ù¸£Áö ¾Ê½À´Ï´Ù. ´Ù¸¸ ADO ¿¡¼­´Â Command °´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê´õ¶óµµ µ¥ÀÌÅͺ£À̽º¿¡¼­ ·¹Äڵ带 °¡Á®¿Ã ¼ö ÀÖ¾ú½À´Ï´Ù. Command °´Ã¼¸¦ »ç¿ëÇÒ ¶§¶ó°í´Â Stored Procedure ( ÀÌÇÏ sp )¸¦ »ç¿ëÇÒ ¶§¿¡ ÀÚÁÖ »ç¿ëµÇ¾úÁÒ.
ÇÏÁö¸¸ ADO.NET¿¡¼­´Â ¸ðµç ¸í·ÉÀ» ³»¸± °æ¿ì¿¡´Â ÀÌ Command °´Ã¼¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¶§¿¡µµ, µ¥ÀÌÅ͸¦ ÀÔ·Â, ¼öÁ¤, »èÁ¦ µî ¸ðµç ¸í·ÉÀº Command °´Ã¼¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÌÁÒ.

Command °´Ã¼ÀÇ ¶óÀÌÇÁ »çÀÌŬ ( Life Cycle ) Àº ´ÙÀ½°ú °°½À´Ï´Ù.

¨Í Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
¨Î Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
¨Ï Command °´Ã¼ÀÇ CommandText ÇÁ·ÎÆÛƼ¿¡ Äõ¸®¹®À̳ª ÀúÀå ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¨Ð Command °´Ã¼ÀÇ CommandType ÇÁ·ÎÆÛƼ¿¡ ½ÇÇàµÉ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
¨Ñ Command °´Ã¼ÀÇ Connection ÇÁ·ÎÆÛƼ¿¡ Connection °´Ã¼¸¦ ¼³Á¤ÇØÁÝ´Ï´Ù.
¨Ò Connection °´Ã¼ÀÇ Open() ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ¿­¾îÁÝ´Ï´Ù.
¨Ó Command °´Ã¼ÀÇ Execute ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© ÇØ´ç Äõ¸®¹®À̳ª ÀúÀå ÇÁ·Î½ÃÀú¸¦ ½ÇÇàÇÕ´Ï´Ù.
¨Ô Connection °´Ã¼ÀÇ Close() ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ ´Ý¾ÆÁÝ´Ï´Ù.

¹°·Ð ²À À§¿Í °°ÀÌ ÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Command °´Ã¼ÀÇ »ý¼ºÀÚ¿¡¼­ Connection °´Ã¼¿Í CommandText ÇÁ·ÎÆÛƼ¸¦ °°ÀÌ ÁöÁ¤ÇÒ ¼ö À־ ÇѲ¨¹ø¿¡ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̹ø¿¡´Â »ý¼ºÀÚ¿¡ ¸Å°³ º¯¼ö°¡ ¾ø´Â °ÍÀ» »ç¿ëÇØ¼­ À§¿Í °°Àº »çÀÌŬÀ» µû¶ó¼­ ±¸ÇöÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

¿ì¼± ¿¹Á¦¿¡ »ç¿ëÇÒ µ¥ÀÌÅͺ£À̽ºÀÇ È¯°æÀ» ±¸ÃàÇϵµ·Ï ÇϰڽÀ´Ï´Ù. Àü Study ¶ó´Â µ¥ÀÌÅͺ£À̽º¸¦ »ý¼ºÇؼ­ »ç¿ëÇϵµ·Ï ÇϰڽÀ´Ï´Ù. »ç¿ëÇϽ÷Á´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ ´ÙÀ½°ú °°ÀÌ Å×À̺íÀ» »ý¼ºÇÕ´Ï´Ù. À̹ø ¿¹Á¦´Â Å×À̺íÀÇ À̸§¿¡¼­µµ ¾Ë ¼ö ÀÖµíÀÌ ÁÖ¼Ò·ÏÀÌ µÇ°Ú½À´Ï´Ù. ^^;;

Create Table Address
(
    ID        varchar(20)    Not Null    -- ID
,    Name        varchar(20)    Not Null    -- À̸§
,    Email        varchar(100)    Null        -- À̸ÞÀÏ
,    Age        tinyint        Not Null    -- ³ªÀÌ
,    BirthDay    datetime    Not Null    -- »ýÀÏ
)

À§¿Í °°ÀÌ Å×À̺íÀ» ¸¸µé¾úÀ¸¸é Å×ÀÌºí¿¡ °ªÀ» ÀÔ·ÂÇÒ ¼ö ÀÖµµ·Ï sp¸¦ ÀÛ¼ºÇϵµ·Ï ÇϰڽÀ´Ï´Ù. Âü°í·Î ¸ðµç ÀÔ·Â, ¼öÁ¤, »èÁ¦´Â sp¸¦ »ç¿ëÇØ¼­ ÁøÇàÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ÇÏÁö¸¸ À̹ø °­Á´ ±âÃʸ¦ ¾Ë¾Æº¸´Â ºÎºÐÀ̹ǷΠsp ¸¦ »ç¿ëÇÏ´Â ¹æ¹ý°ú Äõ¸®¹®À» ¹Ù·Î ÀÔ·ÂÇÒ ¼ö ÀÖµµ·Ï ÇϰڽÀ´Ï´Ù. ÀÔ·ÂÀ» ÇÏ´Â sp´Â ÇÊ¿äÇÑ ¸ðµç µ¥ÀÌÅͰ¡ ÀÔ·ÂµÈ °æ¿ì¿¡¸¸ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÕ´Ï´Ù. ¶Ç, ÇÊ¿äÇÑ ÇʵåÀÇ °ªÀÌ µé¾î¿ÀÁö ¾Ê´Â´Ù¸é -1 ~ -4 ÀÇ °ªÀ» ¸®ÅÏÇØ¼­ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.

Create Proc up_InsertAddress
    @ID        varchar(20)    = Null
,    @Name        varchar(20)    = Null
,    @Email        varchar(100)    = Null
,    @Age        tinyint        = 0
,    @BirthDay    datetime    = Null
As
Begin
    -- ID ¸¦ ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é -1À» ¸®ÅÏÇÑ´Ù.
    If @ID Is Null
        Return    -1

    -- À̸§À» ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é -2¸¦ ¸®ÅÏÇÑ´Ù.
    If @Name is Null
        Return    -2

    -- ³ªÀ̸¦ ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é -3À» ¸®ÅÏÇÑ´Ù.
    If @Age = 0
        Return    -3

    -- »ýÀÏÀ» ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é -4¸¦ ¸®ÅÏÇÑ´Ù.
    If @BirthDay is Null
        Return    -4

    -- Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑ´Ù.
    Insert Into Address (
        ID
        , Name
        , Email
        , Age
        , BirthDay
    ) values (
        @ID
        , @Name
        , @Email
        , @Age
        , @BirthDay
    )

    -- ¿À·ù¹øÈ£¸¦ ¸®ÅÏÇÑ´Ù.
    -- 0 À̶ó¸é Á¤»óÀûÀ¸·Î ó¸®µÈ °ÍÀÌ´Ù.
    Declare    @iErr    int

    Set    @iErr = @@ERROR

    Return    @iErr
End

¾î¶²°¡¿ä? sp´Â ±×¸® ¾î·ÆÁö´Â ¾ÊÁö¿ä? ÀÌ·¸°Ô ¸¸µé°í ³ª¸é ÁغñÀÛ¾÷Àº ¸ðµÎ ³¡³µ½À´Ï´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À ´å³ÝÀ» ½ÇÇàÇØ¼­ ¿¹Á¦¸¦ ¸¸µé¾îº¸µµ·Ï ÇϰڽÀ´Ï´Ù.

VS.NETÀ» ¶ç¿ì°í »õ ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇÑ ÈÄ¿¡ ´ÙÀ½°ú °°ÀÌ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ À̸§Àº CommandEx ÀÔ´Ï´Ù.

»õ ÇÁ·ÎÁ§Æ®°¡ »ý¼ºÀÌ µÇ¸é ÄÚµå ÆíÁý±â¿¡ ´ÙÀ½ÀÇ Äڵ带 ÀÔ·ÂÇÕ´Ï´Ù. À̹ø °­Á¿¡¼­´Â µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ´Â ºÎºÐ¸¸ ´Ù·çµµ·Ï ÇϰڽÀ´Ï´Ù. ¸¸ÀÏ ¼öÁ¤À̳ª »èÁ¦¸¦ ÇÏ½Ç °æ¿ì´Â ÀԷ°ú´Â Äõ¸®¹®¸¸ ´Ù¸£¹Ç·Î ±× ºÎºÐ¸¸ ¼ÕÀ» º¸½Ã¸é µÇ°Ú³×¿ä.

using System;
using System.Data;
using System.Data.SqlClient;

namespace CommandEx
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>

    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>

        [STAThread]
        static void Main(string[] args)
        {
            // Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
            SqlConnection connection = new SqlConnection( "server=localhost;"
                + "database=Study;uid=sa;pwd=0000" );

            // µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ´Â ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.
            InsertData( connection );
        }

        static void InsertData( SqlConnection connection )
        {
            // Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
            SqlCommand command = new SqlCommand();

            /*****************************************************
             * µ¥ÀÌÅͺ£À̽º¿¡ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÕ´Ï´Ù.
             * **************************************************/
            // CommandText ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ Ä¿¸®¹®À» ¼³Á¤ÇÕ´Ï´Ù.

            command.CommandText = "Insert into Address "
                + "( ID, Name, Email, Age, BirthDay ) "
                + " values ( '9999', '9999', '9999@999.com', 32, '19710301' )";
            // CommandType ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
            command.CommandType = CommandType.Text;

            // Connection °´Ã¼ÀÇ ¿¬°áÀ» »ç¿ëÇϵµ·Ï Çϱâ À§Çؼ­
            // Command °´Ã¼ÀÇ Connection ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
            command.Connection = connection;

            try
            {
                // µ¥ÀÌÅͺ£À̽º¸¦ ¿­°í ¸í·ÉÀ» ½ÇÇàÇÕ´Ï´Ù.
                connection.Open();
                // ¸í·ÉÀ» ½ÇÇàÇÏ°í ¸í·É¿¡ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµå¼ö¸¦ ¹Ýȯ¹Þ½À´Ï´Ù.
                int iResult = int.Parse( command.ExecuteNonQuery().ToString() );
                Console.WriteLine( "================================" );
                Console.WriteLine( "{0} °³ÀÇ ·¹Äڵ尡 ÀԷµǾú½À´Ï´Ù.", iResult );
                Console.WriteLine( "================================" );
            }
            catch( Exception e )
            {
                Console.WriteLine( e.Message );
            }
            finally
            {
                connection.Close();
            }
        }
    }
}

¸ðµç ¼Ò½º¸¦ ÀÔ·ÂÇßÀ¸¸é Ctrl + F5 ¸¦ ´­·¯¼­ ½ÇÇàÀ» ÇÕ´Ï´Ù.

¾î¶²°¡¿ä? Á¦´ë·Î ³ª¿À³ª¿ä?
¿¹? Äõ¸®¹®À» ±×³É ³ÖÀ» °Å¸é¼­ ¿Ö sp ¸¦ ÀÛ¼ºÇ߳ı¸¿ä? Á¶±Ý¸¸ ±â´Ù¸®¼¼¿ä. Àá½Ã ÈÄ¿¡ sp ¸¦ ÀÌ¿ëÇÒ °Å¶ø´Ï´Ù. ^^ À̹ø¿¡´Â À§ÀÇ ¼Ò½º¸¦ °£´ÜÈ÷ ºÐ¼®ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¸Ó º°·Î º¹ÀâÇÏÁöµµ ¾Ê°í ´Ü¼øÈ÷ 3°¡Áö¸¸ À¯ÀÇ ÇØ¼­ º¸¸é µË´Ï´Ù. ¿ì¼± ù¹øÂ°·Î CommandText ÇÁ·ÎÆÛƼ ÀÔ´Ï´Ù.

/*****************************************************
* µ¥ÀÌÅͺ£À̽º¿¡ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÕ´Ï´Ù.
* **************************************************/
// CommandText ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ Ä¿¸®¹®À» ¼³Á¤ÇÕ´Ï´Ù.

command.CommandText = "Insert into Address "
    + "( ID, Name, Email, Age, BirthDay ) "
    + " values ( '9999', '9999', '9999@999.com', 32, '19710301' )";

CommandText ÇÁ·ÎÆÛƼ´Â µ¥ÀÌÅͺ£À̽º¿¡ Àü´ÞÇÒ Äõ¸®¹®À» ¼³Á¤ÇÏ´Â ÇÁ·ÎÆÛƼÀÌÁö¿ä.
µû¶ó¼­ À§¿Í °°ÀÌ Äõ¸®¹®À» Á÷Á¢ ÀÔ·ÂÇØ¼­ ¼Ò½º¿¡ ³Ö´Â´Ù¸é Äõ¸®¹®À» ±×´ë·Î ³Ö¾îÁÖ¸é µÇ´Â °ÍÀÌ°í ±×·¸Áö ¾Ê°í sp ¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â spÀÇ À̸§À» ¼³Á¤ÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.

´ÙÀ½À¸·Î´Â CommandType ÇÁ·ÎÆÛƼÀÔ´Ï´Ù.

// CommandType ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ Äõ¸®¹®ÀÇ Á¾·ù¸¦ ¼³Á¤ÇÕ´Ï´Ù.
command.CommandType = CommandType.Text;

CommandType ÇÁ·ÎÆÛƼ¿¡´Â Text, StoredProcedure, TableDirect ÀÇ 3°¡Áö°¡ Àִµ¥ ¿©±â¿¡¼­´Â ÀϹÝÀûÀÎ Äõ¸®¹®À» ±×´ë·Î ³Ö¾îÁÖ¾úÀ¸¹Ç·Î Text·Î ¼³Á¤À» Çß½À´Ï´Ù.

´ÙÀ½À¸·Î´Â ExecuteNonQuery ¸Þ¼­µåÀÔ´Ï´Ù.

connection.Open();
// ¸í·ÉÀ» ½ÇÇàÇÏ°í ¸í·É¿¡ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµå¼ö¸¦ ¹Ýȯ¹Þ½À´Ï´Ù.
int iResult = int.Parse( command.ExecuteNonQuery().ToString() );

µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ´Â Äõ¸®¹®À» ½ÇÇàÇÒ ¶§¿¡´Â À§¿Í °°ÀÌ ExecuteNonQuery() ¸Þ¼­µå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¸Þ¼­µå´Â ¸í·ÉÀ» ½ÇÇàÇÑ ÈÄ¿¡ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµåÀÇ ¼ýÀÚ¸¦ ¹ÝȯÇÕ´Ï´Ù.

¾î¶²°¡¿ä? »ó´çÈ÷ ½±ÁÒ?
À̹ø¿¡´Â sp¸¦ »ç¿ëÇØ¼­ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
´ÙÀ½ÀÇ ¼Ò½º¸¦ À§ÀÇ Class1.cs ÆÄÀÏ¿¡ Ãß°¡ÇÕ´Ï´Ù.

static void InsertDataWithSp( SqlConnection connection )
{
    // Command °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
    SqlCommand command = new SqlCommand();

    // CommandText ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ spÀÇ À̸§À» ¼³Á¤ÇÕ´Ï´Ù.
    command.CommandText = "up_InsertAddress";

    // CommandType ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇØ¼­ sp¸¦ »ç¿ëÇÑ´Ù°í ¾Ë¸³´Ï´Ù.
    command.CommandType = CommandType.StoredProcedure;

    // Connection °´Ã¼ÀÇ ¿¬°áÀ» »ç¿ëÇϵµ·Ï Çϱâ À§Çؼ­
    // Command °´Ã¼ÀÇ Connection ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
    command.Connection = connection;

    // ÀúÀå ÇÁ·Î½ÃÀúÀÇ ¸Å°³º¯¼ö¸¦ ¼³Á¤ÇÕ´Ï´Ù.
    command.Parameters.Add( "@ID", SqlDbType.VarChar, 20 );
    command.Parameters.Add( "@Name", SqlDbType.VarChar, 20 );
    command.Parameters.Add( "@Email", SqlDbType.VarChar, 100 );
    command.Parameters.Add( "@Age", SqlDbType.TinyInt, 0 );
    command.Parameters.Add( "@BirthDay", SqlDbType.DateTime, 20 );

    // ÁöÁ¤ÇÑ ¸Å°³º¯¼ö¿¡ °ªÀ» ÀÔ·ÂÇÕ´Ï´Ù.
    command.Parameters["@ID"].Value = "CuteGuy";
    command.Parameters["@Name"].Value = "±ôÂïÀÌ";
    command.Parameters["@Email"].Value = "Cuteguy@CuteGuy.net";
    command.Parameters["@Age"].Value = 30;

    DateTime dt = new DateTime( 1972, 3, 1);

    command.Parameters["@BirthDay"].Value = dt;

    // ¸®ÅÏ °ªÀ» ¹ÞÀ» ¸Å°³º¯¼ö¸¦ ¼³Á¤ÇÕ´Ï´Ù.
    SqlParameter param = command.Parameters.Add( "@Result", SqlDbType.Int );
    param.Direction = ParameterDirection.ReturnValue;

    // µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ¿¬°áÀ» ¿­°í sp¸¦ ½ÇÇàÇÕ´Ï´Ù.
    command.Connection.Open();
    command.ExecuteNonQuery();

    // ¸®ÅϰªÀ» ¹Þ¾Æ¼­ °á°ú°ªÀ» È­¸é¿¡ Ãâ·ÂÇÕ´Ï´Ù.
    int iResult = Convert.ToInt32( command.Parameters["@Result"].Value );
    string ErrMsg = null;

    switch( iResult )
    {
        case    0 :
            ErrMsg = "Á¤»óÀûÀ¸·Î ÀԷµǾú½À´Ï´Ù.";
            break;

        case    -1 :
            ErrMsg = "ID°¡ ÀԷµÇÁö ¾Ê¾Ò½À´Ï´Ù.";
            break;

        case    -2 :
            ErrMsg = "À̸§ÀÌ ÀԷµÇÁö ¾Ê¾Ò½À´Ï´Ù.";
            break;

        case    -3 :
            ErrMsg = "³ªÀ̰¡ ÀԷµÇÁö ¾Ê¾Ò½À´Ï´Ù.";
            break;

        case    -4 :
            ErrMsg = "»ýÀÏÀÌ ÀԷµÇÁö ¾Ê¾Ò½À´Ï´Ù.";
            break;
    }

    Console.WriteLine( ErrMsg );
}

ÀÌ·¸°Ô Ãß°¡¸¦ ÇÑ ÈÄ¿¡´Â Main ¸Þ¼­µå¸¦ ´ÙÀ½°ú °°ÀÌ º¯°æÇÕ´Ï´Ù.

static void Main(string[] args)
{
    // Connection °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
    SqlConnection connection = new SqlConnection( "server=localhost;"
        + "database=Study;uid=sa;pwd=0000" );

    // µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ´Â ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.
    InsertData( connection );

    // sp¸¦ ÀÌ¿ëÇØ¼­ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ´Â ¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.
    InsertDataWithSp( connection );

}

ÀÌÁ¦±îÁö Äõ¸®¹®À» ÅëÇØ Á÷Á¢ µ¥ÀÌÅͺ£À̽º¿¡ Àü´ÞÇÏ´Â ¹æ¹ý°ú sp¸¦ »ç¿ëÇØ¼­ µ¥ÀÌÅ׺£À̽º¿¡ Àü´ÞÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ °£´ÜÈ÷ ¾Ë¾Æº¸¾Ò½À´Ï´Ù.
±âÁ¸¿¡ Á¦ °­Á¸¦ º¸½Å ºÐÀ̶ó¸é asp ¿¡¼­ sp¸¦ »ç¿ëÇß´ø °Í°ú ±×¸® Å« Â÷À̸¦ º¸ÀÌÁö ¾Ê°í ÀÖ´Â°É ¾Ë°í °è½Ç °ÍÀÔ´Ï´Ù.
À̹ø °­Á¿¡ »ç¿ëÇÑ ¼Ò½º ÆÄÀÏÀº Á¦ ȨÆäÀÌÁöÀÇ °ø°³ ¼Ò½º ÀÚ·á½Ç¿¡¼­ ´Ù¿îÀ» ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½¿¡´Â µ¥ÀÌÅ͸¦ ºÒ·¯¿À´Â Ŭ·¡½ºÀÎ DataReader¿¡ ´ëÇØ¼­ ÁغñÇϵµ·Ï ÇÏÁö¿ä..
¿©·¯ºÐµé ¸ðµÎ ÁÁÀº ÇÏ·ç µÇ½Ã±¸¿ä...
±×·³ À̸¸...

Written By ±ôÂïÀÌ
HomePage : http://www.cuteguy.pe.kr

Back