Visual C++ .NET ¶Ç´Â Visual C++ 2005¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡¼­ DataSet °³Ã¼ ¾÷µ¥ÀÌÆ®ÇÏ´Â ¹æ¹ý

±â¼ú ÀÚ·á: 815660 - ÀÌ ¹®¼­°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â.
¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

ÀÌ ÆäÀÌÁö¿¡¼­

¿ä¾à

ÀÌ ¹®¼­¿¡¼­´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ ·ÎµåÇÏ°í µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÏ´Â DataSet °¡Á®¿À´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù ÇØ´ç µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â ¹æ¹ý, ´ÙÀ½ ¿øº»À» ¾÷µ¥ÀÌÆ®ÇÏ´Â µ¥ ´Ù½Ã µ¥ÀÌÅͺ£À̽º¿¡ º¸³»´Â ¹æ¹ý.

DataSet °³Ã¼´Â, Microsoft .NET Framework µ¥ÀÌÅÍ ¾×¼¼½º ÇÙ½É ºÎºÐÀ¸·Î Å×À̺í, ºä ¹× °ü°è¸¦ º¸À¯ÇÒ ¼ö ¸Þ¸ð¸®¿¡ °³Ã¼ÀÔ´Ï´Ù.

¿ä±¸ »çÇ×

´ÙÀ½Àº ±ÇÀåµÇ´Â Çϵå¿þ¾î, ¼ÒÇÁÆ®¿þ¾î, ³×Æ®¿öÅ© ÀÎÇÁ¶ó ¹× ÇÊ¿äÇÑ ¼­ºñ½º ÆÑÀÇ ¸ñ·ÏÀÔ´Ï´Ù.
  • ´ÙÀ½ Áß Çϳª¸¦: Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server ¶Ç´Â Microsoft Windows NT 4.0 Server
  • ´ÙÀ½ Áß Çϳª¸¦: Microsoft SQL Server ¹öÀü 7.0, Microsoft SQL Server 2000 ¶Ç´Â Microsoft µ¥ÀÌÅÍ ¿£Áø (MSDE) PUBS ¿¹Á¦ µ¥ÀÌÅͺ£À̽º »ç¿ëÇÏ¿© ÀûÀýÇÑ »ç¿ë ±ÇÇÑ, UserID ¹× ¾ÏÈ£ °ªÀÌ ¼³Ä¡µÈ.
  • Microsoft Visual Studio .NET ¶Ç´Â Microsoft Visual Studio 2005
ÀÌ ¹®¼­¿¡¼­´Â »ç¿ëÀÚ°¡ ´ÙÀ½ Ç׸ñÀ» Àß ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÕ´Ï´Ù.
  • µ¥ÀÌÅͺ£À̽º ¿ë¾î
  • ±¸Á¶ÀûµÈ Äõ¸® ¾ð¾î (SQL)


µ¥ÀÌÅͺ£À̽º¿¡¼­ DataSet °³Ã¼ ¾÷µ¥ÀÌÆ® ¹æ¹ý

ÀÌ ¼½¼Ç¿¡¼­´Â DataSet °³Ã¼¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡¼­ µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ®ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.

Áß¿äÇÑSqlCommand °³Ã¼¿¡ »ðÀÔ, ¾÷µ¥ÀÌÆ® ¹× µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅ͸¦ Á÷Á¢ »èÁ¦ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

DataSet ·ÎµåÇÑ ÈÄ¿¡´Â µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. DataSet ÀÌ·¯ÇÑ º¯°æ ³»¿ëÀ» ÃßÀûÇÏ´Â °ÍÀÔ´Ï´Ù. DataSet °³Ã¼´Â µ¥ÀÌÅͺ£À̽º¿¡¼­ °Ë»öµÈ µ¥ÀÌÅÍÀÇ ¸Þ¸ð¸® ³» ij½Ã·Î °£ÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù. DataSet °³Ã¼´Â Å×À̺í, °ü°è ¹× Á¦¾à Á¶°ÇÀÇ Ä÷º¼ÇÀÌ ±¸¼ºµË´Ï´Ù.

DataSet ¾÷µ¥ÀÌÆ®Çϰí ÇØ´ç ¾÷µ¥ÀÌÆ®¸¦ ´Ù½Ã µ¥ÀÌÅͺ£À̽º¿¡ º¸³»´Â ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ.
  1. Microsoft Visual Studio .NET ¶Ç´Â Microsoft Visual Studio 2005 ¿±´Ï´Ù.
  2. Visual C++ .NET¿¡¼­ »õ Managed C++ ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µì´Ï´Ù. Visual Studio main() ÇÔ¼ö¸¦ ¸¸µì´Ï´Ù. main() ÇÔ¼ö¿¡¼­ »ý¼ºµÈ Äڵ带 Á¦°ÅÇϽʽÿÀ.
  3. ½Ã½ºÅÛ ¹× System.Data ³×ÀÓ½ºÆäÀ̽º¿¡ ´ëÇÑ ÂüÁ¶¸¦ Ãß°¡ÇÏ·Á¸é ´ÙÀ½ Äڵ带
    #using <System.Dll>
    #using <System.Data.Dll>
    #using <System.Xml.Dll>
  4. USING ¹®À» ½Ã½ºÅÛ, System.Data ¹× System.Data.SqlClient ³×ÀÓ½ºÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ³ªÁß¿¡ Äڵ忡¼­ ÀÌ ³×ÀÓ½ºÆäÀ̽ºÀÇ ¼±¾ðÀ» ÇÑÁ¤ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ÀÌ ¸í·É¹®Àº Ç×»ó ¼±¾ð ¾Õ¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
    using namespace System;
    using namespace System::Data;
    using namespace System::Xml;
    using namespace System::Data::SqlClient;
    
  5. µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ°í º¯°æ ³»¿ëÀ» µ¥ÀÌÅͺ£À̽º¿¡ ´Ù½Ã Àü¼ÛÇϱâ Àü¿¡ Á¤º¸¸¦ DataSet À¸·Î ·ÎµåÇØ¾ß ÇÕ´Ï´Ù.

    ´ÙÀ½ Äڵ忡¼­ ¿¬°á ¹®ÀÚ¿­À» ·ÎÄà ÄÄÇ»ÅÍ ¶Ç´Â ÇØ´ç Äڵ尡 ½ÇÇà ÁßÀÎ ÄÄÇ»ÅÍ¿¡¼­ À§Ä¡ÇÑ SQL Server¸¦ °¡¸®Åµ´Ï´Ù. ÀÌ ¹®ÀÚ¿­À» »ç¿ëÀÚ °íÀ¯ÀÇ ¼³Á¤À» ¹Ù²ß´Ï´Ù.

    ¿ä¾àÇÏ¸é ¿¬°áÀÌ ¸¸µé¾îÁö°í ´ÙÀ½ µ¥ÀÌÅÍ ¾î´ðÅÍ, µ¥ÀÌÅÍ ÁýÇÕ À» µ¥ÀÌÅͷΠä¿ì±â À§ÇØ »ç¿ëµÇ´Â ¸¸µé¾îÁý´Ï´Ù.
    SqlConnection  *objConn;
    String *sConnectionString;
    sConnectionString = "Password=StrongPassword;User ID=UserName;Initial Catalog=pubs;Data Source=(local)";
    
    objConn = new SqlConnection(sConnectionString);
    objConn->Open();
            
    // Create an instance of a DataAdapter.
    SqlDataAdapter* daAuthors = new SqlDataAdapter("Select * From Authors", objConn);
    
    // Create an instance of a DataSet, and retrieve data from the Authors table.
    DataSet* dsPubs = new DataSet("Pubs");
    daAuthors->FillSchema(dsPubs,SchemaType::Source, "Authors");
    daAuthors->Fill(dsPubs,"Authors");
    
    ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» Áö¿øÇÏ´Â Âü°í °ø¿ë ¾ð¾î ·±Å¸ÀÓ¿¡¼­ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù (/clr:oldSyntax) ¼º°øÀûÀ¸·Î ÀÌÀü ÄÚµå »ùÇÃÀ» ÄÄÆÄÀÏÇÏ·Á¸é Visual C++ 2005 ¿¡¼­. Visual C++ 2005¿¡¼­´Â °ø¿ë ¾ð¾î ·±Å¸ÀÓ Áö¿ø ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» Ãß°¡ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ.
    1. ÇÁ·ÎÁ§Æ® ¸¦ Ŭ¸¯ÇÑ ´ÙÀ½ <ProjectName> ¼Ó¼ºÀ».

      Âü°í<ProjectName> ÇÁ·ÎÁ§Æ® À̸§¿¡ ´ëÇÑ ÀÚ¸® Ç¥½ÃÀÚÀÔ´Ï´Ù.
    2. ±¸¼º ¼Ó¼º À» È®ÀåÇÑ ´ÙÀ½ ÀÏ¹Ý À» Ŭ¸¯ÇϽʽÿÀ.
    3. È®ÀζõÀ» ¼±ÅÃÇÏ°í °ø¿ë ¾ð¾î ·±Å¸ÀÓ Áö¿ø, ÀÌÀü ±¸¹® (/clr:oldSyntax)°ø¿ë ¾ð¾î ·±Å¸ÀÓ Áö¿ø ÇÁ·ÎÁ§Æ® ¼³Á¤À» ¿À¸¥ÂÊ Ã¢¿¡ Àû¿ë À» ´©¸¥ ´ÙÀ½ È®ÀÎ À» ´©¸¨´Ï´Ù.
    °ø¿ë ¾ð¾î ·±Å¸ÀÓ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» Áö¿øÇÏ´Â º¸·Á¸é ´ÙÀ½ Microsoft À¥ »çÀÌÆ®¸¦ ¹æ¹®ÇϽʽÿÀ.
    /clr (°ø¿ë ¾ð¾î ·±Å¸ÀÓ ÄÄÆÄÀÏ)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
    ÀÌ ´Ü°è´Â Àüü ¹®¼­¿¡ Àû¿ëµË´Ï´Ù.
  6. µ¥ÀÌÅ͸¦ ·ÎµåÇÑ °ÍÀ» ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ÇàÀ̳ª ·¹Äڵ带 Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÄÚµå »ùÇÿ¡¼­´Â ¼¼ ´Ü°è ÀýÂ÷¸¦ »ç¿ëÇÕ´Ï´Ù.
    1. »õ DataRow °³Ã¼¸¦ DataTable ¿¡¼­ ¾ò½À´Ï´Ù.
    2. DataRow ÇÊµå °ªÀ» Çʿ信 µû¶ó ¼³Á¤ÇϽʽÿÀ.
    3. »õ °³Ã¼¿¡ DataTable.Rows Ä÷º¼ÇÀÇ Add ¸Þ¼­µå¸¦ Àü´ÞÇϽʽÿÀ.

    5´Ü°è¿¡¼­ ÄÚµå µÚ¿¡ ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù.
    // BEGIN ADD CODE 
    // Create a new instance of a DataTable.
    DataTable* tblAuthors = dsPubs->Tables->Item["Authors"];
    
    
    // Obtain a new DataRow object from the DataTable.
    DataRow* drCurrent = tblAuthors->NewRow();
    
    // Set the DataRow field values as necessary.
    drCurrent->set_Item("au_id",new String("993-21-3427"));
    
    drCurrent->set_Item("au_fname",new String("George"));
    drCurrent->set_Item("au_lname",new String("Johnson"));
    drCurrent->set_Item("phone",new String("800 226-0752"));
    drCurrent->set_Item("address", new String ("1956 Arlington Pl."));
    drCurrent->set_Item("city", new String("Winnipeg"));
    drCurrent->set_Item("state", new String("MB"));
    drCurrent->set_Item("contract",__box(1));
    
    // Pass that new object into the Add method of the DataTable.
    tblAuthors->Rows->Add(drCurrent);
    Console::WriteLine("Add was successful, Click any key to continue!!");
    Console::ReadLine();
    
    // END ADD CODE  
    
  7. ±âÁ¸ ÇàÀ» ÆíÁýÇÏ·Á¸é ÀûÀýÇÑ DataRow °³Ã¼¸¦ ±¸ÇÏ¿© ´ÙÀ½ Çϳª ÀÌ»óÀÇ ¿­¿¡ ´ëÇÑ »õ °ªÀ» Á¦°øÇϽʽÿÀ. ¸ÕÀú µ¥ÀÌÅÍ (´Ü°è 5¿¡¼­ FillSchema È£Ãâ) »Ó¸¸ ¾Æ´Ï¶ó Å×À̺íÀÇ ½ºÅ°¸¶¸¦ ·ÎµåÇÒ ¶§¹®¿¡ ÈξÀ ´õ ½±°Ô ¿Ã¹Ù¸¥ ÇàÀ» ã¾Æ¾ß ÇÕ´Ï´Ù. ½ºÅ°¸¶ À§Ä¡¿¡ Å×À̺íÀÇ ¾î¶² ¿­ÀÌ ÇØ´ç ±âº» ۸¦ ¾Ë°í ÀÖÀ¸¸ç Rows Ä÷º¼ÇÀÇ Find ¸Þ¼­µå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

    Find ¸Þ¼­µå´Â DataRow °³Ã¼¸¦ ƯÁ¤ °ª (ÀÌ °æ¿ì, au_id) ¿¡¼­ ±âº» Ű ¹ÝȯÇÕ´Ï´Ù. DataRow ÀÖ¾î¾ß ÈÄ¿¡´Â ¿­À» ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. BeginEdit ¹× EndEdit, ¼öÁ¤ ³»¿ëÀ» ·¡ÇÎÇÒ Çʿ䰡 ÀÖÁö¸¸ ÀÌ´Â °£´ÜÇÏ°Ô ÀÛ¾÷ DataSet ¼ö ¹× DataSetEndEdit È£ÃâÇÒ ¶§ À¯È¿¼º °Ë»ç¸¦ µ¿½Ã¿¡ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

    6´Ü°è¿¡¼­ ÄÚµå µÚ¿¡ ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù:
    // BEGIN EDIT CODE 
    
    drCurrent = tblAuthors->Rows->Find(new String("213-46-8915"));
    drCurrent->BeginEdit();
    
    drCurrent->set_Item("phone",String::Concat(S"342",(static_cast<String *>(drCurrent->Item["phone"]))->Substring(3)));
    drCurrent->EndEdit ();
    Console::WriteLine("Record edited successfully, Click any key to continue!!");
    Console::ReadLine();
    
    // END EDIT CODE
    
  8. ¿øº» µ¥ÀÌÅͺ£À̽ºÀÇ ¸ðµç ÀÌ º¯°æ ³»¿ëÀ» ¾÷µ¥ÀÌÆ®ÇÏ·Á¸é DataSet ¿¡ µ¥ÀÌÅÍ ¾î´ðÅÍ °³Ã¼ÀÇ Update ¸Þ¼­µå¸¦ Àü´ÞÇϽʽÿÀ.

    ±×·¯³ª ¾÷µ¥ÀÌÆ® È£ÃâÇϱâ Àü¿¡ µ¥ÀÌÅÍ ¾î´ðÅÍ °³Ã¼ÀÇ UpdateCommand, InsertCommand, DeleteCommand ¼Ó¼ºÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. SQL ¼öµ¿À¸·Î ÀÛ¼ºÇϰí ÀÌ·¯ÇÑ ¼¼ °¡Áö ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÇØ´ç SqlCommand °³Ã¼¿¡ ä¿ï ¼ö ÀÖÁö¸¸ Visual Studio .NET ÀÌ·¯ÇÑ ¼¼ °¡Áö ¸í·ÉÀ» ÀÚµ¿À¸·Î »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

    ÇÊ¿äÇÒ ¶§ ÇÊ¿äÇÑ ¸í·ÉÀ» »ý¼ºÇÏ´Â µ¥ SqlCommandBuilder °³Ã¼ÀÇ ÀνºÅϽº¸¦ ¸¸µé°í »ý¼ºÀÚ¿¡¼­ DataAdapter »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½¿¡ ³ª¿À´Â ÄÚµå »ùÇÿ¡ Ç¥½ÃµÈ ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇÒ °æ¿ì, Å×ÀÌºí¿¡ ´ëÇÑ ±âº» Ű Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ±âº» Ű Á¤º¸¸¦ ¾×¼¼½ºÇÒ ¼ö FillSchema, È£Ãâ ¹× ´ÙÀ½ AddWithKey ¼ö ³»¿ëÀ» DataAdapter MissingSchemaAction ¼Ó¼º ¼³Á¤ ¶Ç´Â ¼öµ¿À¸·Î Äڵ忡¼­ ±âº» ۸¦ ¼³Á¤ÇϽʽÿÀ.

    ´Ü°è 7.
    // BEGIN SEND CHANGES TO SQL SERVER 
    
    SqlCommandBuilder* objCommandBuilder = new SqlCommandBuilder(daAuthors);
    daAuthors->Update(dsPubs, "Authors");
    Console::WriteLine("SQL Server updated successfully, Check Server explorer to see changes");
    Console::ReadLine();
    
    // END SEND CHANGES TO SQL SERVER 
    
  9. DataRow °³Ã¼ÀÇ Delete ¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© ÇàÀ» ¿ÏÀüÈ÷ »èÁ¦ÇÕ´Ï´Ù.

    Âü°í Rows Ä÷º¼Ç¿¡¼­ Á¦°ÅÇϰí RemoveAt À» ÇàÀ» »èÁ¦ÇÒ ¼ö ÀÖÁö¸¸ ´ë½Å Çà Ä÷º¼Ç¿¡¼­ Á¦°ÅÇÒ ¹Ù·Î º¸ÀÏ ¼ö ÀÖ´Â µÎ °¡Áö ¹æ¹ýÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. Delete ¸Þ¼­µå¸¦ °æ¿ì¿¡¸¸ »èÁ¦¸¦ ´Ù½Ã ¿øº» µ¥ÀÌÅͺ£À̽º¿¡ º¸³À´Ï´Ù.

    8´Ü°è¿¡¼­ ÄÚµå µÚ¿¡ ´ÙÀ½ Äڵ带 ºÙ¿©://BEGIN
    //BEGIN DELETE CODE 
    
    drCurrent = tblAuthors->Rows->Find(new String("993-21-3427"));
    drCurrent->Delete();
    Console::WriteLine("Record deleted successfully, Click any key to continue!!"); 
    Console::ReadLine();
    
    //END DELETE CODE  
    
  10. ¾Õ¼­ Ãß°¡ÇÑ ·¹Äڵ带 Á¦°ÅÇÏ·Á¸é SQL Server¿¡ º¯°æ ³»¿ëÀ» º¸³À´Ï´Ù.

    9 ´Ü°è¿¡¼­ ÄÚµå µÚ¿¡ ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù.
    // CLEAN UP SQL SERVER
    daAuthors->Update(dsPubs, "Authors");
    Console::WriteLine("SQL Server updated successfully, Check Server explorer to see changes");
    Console::ReadLine();
    objConn->Close ();
    
  11. ÇÁ·ÎÁ§Æ®¸¦ ÀúÀåÇϽʽÿÀ.
  12. µð¹ö±× ¸Þ´º¿¡¼­ ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇÏ·Á¸é ½ÃÀÛ À» Ŭ¸¯ÇϽʽÿÀ.

    ÄÚµå ÁøÇà·üÀ» ³ªÅ¸³»°í ÄÚµå ÁøÇàµÇ´Â µ¥ÀÌÅÍÀÇ ÇöÀç »óŸ¦ °ËÅäÇÒ ¼ö ÀÖ´Â ¿©·¯ ¸Þ½ÃÁö »óÀÚ°¡ ³ªÅ¸³ª´Â »ìÆìº¾´Ï´Ù.


ÄÚµå ¸ñ·Ï ¿Ï·á

// This is the main project file for VC++ application project 
// generated using an Application Wizard.

#include "stdafx.h"

#using <mscorlib.dll>
#using <System.Dll>
#using <System.Data.Dll>
#using <System.Xml.dll>
#include <tchar.h>

using namespace System;
using namespace System::Xml;
using namespace System::Data;
using namespace System::Data::SqlClient;

// This is the entry point for this application
int _tmain(void)
{
    SqlConnection  *objConn;
    try
    {
        String *sConnectionString;
        sConnectionString = "Password=StrongPassword;User ID=UserName;Initial Catalog=pubs;Data Source=(local)";

        objConn = new SqlConnection(sConnectionString);
        objConn->Open();
        
        // Create an instance of a DataAdapter.
        SqlDataAdapter* daAuthors = new SqlDataAdapter("Select * From Authors", objConn);

        // Create an instance of a DataSet, and retrieve data from the Authors table.
        DataSet* dsPubs = new DataSet("Pubs");
        daAuthors->FillSchema(dsPubs,SchemaType::Source, "Authors");
        daAuthors->Fill(dsPubs,"Authors");

        // BEGIN ADD CODE 
        // Create a new instance of a DataTable.
        DataTable* tblAuthors = dsPubs->Tables->Item["Authors"];


        // Obtain a new DataRow object from the DataTable.
        DataRow* drCurrent = tblAuthors->NewRow();

        // Set the DataRow field values as necessary.
        drCurrent->set_Item("au_id",new String("993-21-3427"));

        drCurrent->set_Item("au_fname",new String("George"));
        drCurrent->set_Item("au_lname",new String("Johnson"));
        drCurrent->set_Item("phone",new String("800 226-0752"));
        drCurrent->set_Item("address", new String ("1956 Arlington Pl."));
        drCurrent->set_Item("city", new String("Winnipeg"));
        drCurrent->set_Item("state", new String("MB"));
        drCurrent->set_Item("contract",__box(1));

        // Pass that new object into the Add method of the DataTable.
        tblAuthors->Rows->Add(drCurrent);
        Console::WriteLine("Add was successful, Click any key to continue!!");
        Console::ReadLine();

        // END ADD CODE  
        
        // BEGIN EDIT CODE 

        drCurrent = tblAuthors->Rows->Find(new String("213-46-8915"));
        drCurrent->BeginEdit();

        drCurrent->set_Item("phone",String::Concat(S"342",(static_cast<String *>(drCurrent->Item["phone"]))->Substring(3)));
        drCurrent->EndEdit ();
        Console::WriteLine("Record edited successfully, Click any key to continue!!");
        Console::ReadLine();

        // END EDIT CODE

        // BEGIN SEND CHANGES TO SQL SERVER 

        SqlCommandBuilder* objCommandBuilder = new SqlCommandBuilder(daAuthors);
        daAuthors->Update(dsPubs, "Authors");
        Console::WriteLine("SQL Server updated successfully, Check Server explorer to see changes");
        Console::ReadLine();

        // END SEND CHANGES TO SQL SERVER 

        //BEGIN DELETE CODE 

        drCurrent = tblAuthors->Rows->Find(new String("993-21-3427"));
        drCurrent->Delete();
        Console::WriteLine("SRecord deleted successfully, Click any key to continue!!"); 
        Console::ReadLine();

        //END DELETE CODE  


        // CLEAN UP SQL SERVER
        daAuthors->Update(dsPubs, "Authors");
        Console::WriteLine("SQL Server updated successfully, Check Server explorer to see changes");
        Console::ReadLine();
    }
    catch (Exception* ex)
    {
        Console::WriteLine (ex->Message );
    }
    __finally
    {
        objConn->Close ();
    }
}


ÂüÁ¶

DataSet °³Ã¼ ¹× SQL, ADO.NETÀ» »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ Microsoft À¥ »çÀÌÆ®¸¦ ¹æ¹®ÇϽʽÿÀ.

¼Ó¼º

±â¼ú ÀÚ·á: 815660 - ¸¶Áö¸· °ËÅä: 2007³â 3¿ù 19ÀÏ ¿ù¿äÀÏ - ¼öÁ¤: 5.2
º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Ű¿öµå:?
kbmt kbsystemdata kbsqlclient kbhowtomaster kbhowto KB815660 KbMtko
±â°è ¹ø¿ªµÈ ¹®¼­
Áß¿ä: º» ¹®¼­´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼­ ¹× ±â°è ¹ø¿ªµÈ ¹®¼­¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼­¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼­°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ±â°è ¹ø¿ª ¹®¼­¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.

Çǵå¹é º¸³»±â