°ü°è°¡ ÀÖ´Â Å×À̺íÀ» °Ë»öÇÒ ¶§´Â º¸Åë ¿Ü·¡Å° °ü°è¸¦ ÀÌ¿ëÇÑ´Ù. ¼¹ö¿¡¼ºÎÅÍ
¿Ü·¡Å° Á¦¾àÀÌ °ü¸®µÇ°í ÀÖÀ¸¹Ç·Î SQL Á¶Àι®À¸·Î °ü·Ã ÇàÀ» °Ë»öÇÒ ¼ö ÀÖ°í ´å³ÝÀÌ Á¦°øÇÏ´Â ¿Ü·¡Å°
Á¦¾à °´Ã¼¸¦ È°¿ëÇÏ¿© GetParentRow, GetChildRows ¸Þ¼µå·Îµµ ºÎ¸ð, ÀÚ½Ä ÇàÀ» °Ë»öÇÒ ¼ö ÀÖ´Ù. Á»´õ ½¬¿î ¹æ¹ýÀ¸·Î °³¹ßÅøÀÌ Á¦°øÇÏ´Â
¸¶½ºÅÍ/µðÅ×ÀÏ ÆûÀ» È°¿ëÇÒ ¼ö Àִµ¥ ²ø¾î´Ù ³õ±â¸¸ Çصµ °ü·Ã Å×À̺íÀ» Àϸñ ¿ä¿¬ÇÏ°Ô °Ë»ö ¹× Ãâ·ÂÇÒ
¼ö ÀÖ´Ù.
MasterDetail |
»õ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ ÈÄ µ¥ÀÌÅÍ ¼Ò½º ±¸¼º ¸¶¹ý»ç¿¡¼ tblPeople°ú tblSaleÀ» ¸ðµÎ ¼±ÅÃÇÑ´Ù. µ¥ÀÌÅÍ ¼Ò½ºÃ¢¿¡ µÎ Å×À̺íÀÌ Ç¥½ÃµÈ´Ù.
tblPeopleÀÇ µå·Ó ´Ù¿î ¸Þ´º¿¡¼ ÀÚ¼¼È÷¸¦ ¼±ÅÃÇÑ ÈÄ ÆûÀ¸·Î
µå·¡±×Çϸé ÅؽºÆ® ¹Ú½º¿Í üũ ¹Ú½º·Î °í°´ ÇѸíÀÇ Á¤º¸°¡ Ãâ·ÂµÈ´Ù. ÀÌ °í°´ÀÌ ±¸ÀÔÇÑ ¹°°ÇÀ» Ãâ·ÂÇϱâ
À§ÇØ tblSaleÀ» µå·¡±×ÇÏ¿© Æû¿¡ ¹èÄ¡Ç쵂 tblPeople°ú
°°Àº ¼öÁØÀÇ tblSaleÀÌ ¾Æ´Ï¶ó Male¿ ¹Ù·Î ¹Ø¿¡
ÀÖ´Â tblSaleÀ» µå·¡±×ÇÑ´Ù. tblSaleÀº tblPeopleÀÇ µðÅ×ÀÏ Å×À̺íÀ̹ǷΠtblPeople ³ëµå ¾Æ·¡¿¡µµ
³ªÅ¸³ª´Âµ¥ ÀÌ ³ëµå¸¦ µå·¡±×ÇÑ´Ù. ±¸ÀÔ ¸ñ·ÏÀÌ ±×¸®µå·Î Ãâ·ÂµÈ´Ù.
¿ÞÂÊ¿¡ tblPeopleÀÇ ·¹ÄÚµå Çϳª°¡ Ç¥½ÃµÇ°í ¿À¸¥ÂÊ ±×¸®µå¿¡
ÀÌ °í°´ÀÌ ±¸ÀÔÇÑ ¹°°ÇÀÇ ¸ñ·ÏÀÌ ³ªÅ¸³´Ù. ³×ºñ°ÔÀÌÅÍÀÇ À̵¿ ¹öÆ°À» ´·¯ ´ÙÀ½ ·¹ÄÚµå·Î À̵¿ÇØ º¸¸é
°í°´ÀÌ ¹Ù²ð ¶§¸¶´Ù ±¸ÀÔ ³»¿ªµµ °°ÀÌ °»½ÅµÈ´Ù. µå·¡±×¸¸ ÇÏ¸é µÇ¹Ç·Î Á¶Àκ¸´Ù °£´ÜÇÏ°í Äڵ带 ÀÛ¼ºÇÏÁö
¾Ê¾Æµµ ÆûÀÌ ¿Ï¼ºµÈ´Ù. ¿À¸¥ÂÊ ±×¸®µå ºä¿¡ ¿¬°áµÈ
tblSaleBindingSourceÀÇ ¼Ó¼ºÃ¢À» º¸¸é ¾î°¼ ÀÌ·¸°Ô µ¿ÀÛÇÏ´ÂÁö ¾Ë ¼ö ÀÖ´Ù.
DataSource°¡ µ¥ÀÌÅÍ ¼Ò½ºÀÇ À̸§ÀÌ ¾Æ´Ï¶ó tblPeopleÀÇ BindingSource ÄÁÆ®·Ñ·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸ç DataMember°¡ ¿Ü·¡Å°·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. ±×·¡¼ tblPeopleBindingSource°¡ °¡¸®Å°´Â Å×ÀÌºí¿¡ ¼±ÅÃµÈ ÇàÀÇ ÀÚ½ÄÇàÀ» ã¾Æ Ç¥½ÃÇÑ´Ù. Å×ÀÌºí¿¡ ¹ÙÀεùµÈ °ÍÀÌ ¾Æ´Ï¶ó ¿Ü·¡Å°¿¡ ¹ÙÀεùµÇ¾î ÀÖ¾î °ü·ÃÇàÀÌ ÀÚµ¿À¸·Î °Ë»öµÇ¾î Ãâ·ÂµÈ´Ù. °ü·ÃÇàÀ» °Ë»öÇÏ¿© Ãâ·ÂÇÒ ¶§´Â ÀÌ ¹æ¹ýÀÌ °¡Àå °£´ÜÇÏ´Ù. ¹°·Ð ÆûÀÇ
ÄÁÆ®·ÑÀ» ÅëÇØ »õ·Î¿î ·¹Äڵ带 »ðÀÔÇϰųª ÆíÁýÇÏ´Â °Íµµ °¡´ÉÇϸç ÀúÀåµµ ÇÒ ¼ö ÀÖ´Ù.
µ¥ÀÌÅÍ ¼Ò½º ±¸¼º ¸¶¹ý»ç·Î Å×À̺íÀ» ÀоîµéÀ̸é ÀÌ Å×À̺íÀ» °ü¸®ÇÏ´Â ¾î´ðÅÍ°¡ °°ÀÌ »ý¼ºµÇ¸ç ¾î´ðÅÍ ±¸¼º ¸¶¹ý»ç·Î
¾î´ðÅ͸¦ ¸¸µé¸é Å×ÀÌºí °´Ã¼µµ °°ÀÌ »ý¼ºµÈ´Ù. ¾î´ðÅÍ¿Í Å×À̺íÀº
1:1·Î ´ëÀÀµÇ¹Ç·Î °ÅÀÇ Ç×»ó °°ÀÌ »ý¼ºµÇ¸ç µðÀÚÀ̳ʿ¡µµ ¹À½À¸·Î Ç¥½ÃµÈ´Ù. ¾î´ðÅÍ°¡ ÀÖ¾î¾ß
Å×À̺íÀÇ ³»¿ëÀ» ÀоîµéÀ̰ųª ÀúÀåÇÒ ¼ö ÀÖ°í ¾î´ðÅÍÀÇ Äõ¸®¹®Àº Åë»ó ƯÁ¤ Å×À̺íÀ» ÂüÁ¶Çϱ⠶§¹®ÀÌ´Ù.
±×·¯³ª ÀÌ µÑÀÌ Ç×»ó °°ÀÌ ¹À½À» ÀÌ·ç¾î¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¾Õ¿¡¼
¹è¿î Àü¿ª Äõ¸®´Â Å×À̺í¾øÀÌ ¾î´ðÅ͸¸ Á¸ÀçÇÑ´Ù. ¶Ç ¾î´ðÅ;øÀÌ µ¶¸³ ½ÇÇàÇü Å×ÀÌºí¸¸ »ý¼ºÇÒ ¼öµµ ÀÖ´Ù. ¿©±â¼´Â µ¥ÀÌÅÍ ¼Ò½º ±¸¼º ¸¶¹ý»ç¿Í Å×ÀÌºí ¾î´ðÅÍ ¸¶¹ý»ç¾øÀÌ µ¥ÀÌÅÍ ÁýÇÕ µðÀÚÀ̳ʸ¸À¸·Î Å×À̺í°ú °ü°è¸¦ ¸¸µé¾î
º¸ÀÚ.
TableRelation |
¿ÏÀüÈ÷ ºó »óÅÂÀÇ µ¥ÀÌÅÍ ÁýÇÕÀ» ¸¸µé ¶§´Â ÇÁ·ÎÁ§Æ®/»õ Ç׸ñ Ãß°¡
¸Þ´º¸¦ ¼±ÅÃÇÏ°í ´ëÈ»óÀÚ¿¡¼ µ¥ÀÌÅÍ ÁýÇÕÀ» ¼±ÅÃÇÑ´Ù. ¾Æ·¡ÂÊÀÇ À̸§ ÀԷ¶õÀÌ Àִµ¥ µðÆúÆ® À̸§ÀÌ ÁÁÁö
¾ÊÀ¸¹Ç·Î MyDataSetÀ¸·Î ¼öÁ¤ÇÑ´Ù.
¼Ö·ç¼Ç Ž»ö±â¿¡ MyDataSet.xsd ÆÄÀÏÀÌ Ãß°¡µÇ°í µ¥ÀÌÅÍ ¼Ò½º¿¡´Â MyDataSetÀÌ Ç¥½ÃµÇ¸ç Áß¾Ó¿¡´Â ºó µ¥ÀÌÅÍ ÁýÇÕ µðÀÚÀ̳ʰ¡ ¿¸°´Ù. ¸¶¹ý»ç·ÎºÎÅÍ
¼¹ö¿¡ ¿¬°áÇÏ¿© Å×À̺íÀ» °¡Á®¿Â °ÍÀÌ ¾Æ´Ï°í µ¥ÀÌÅÍ ÁýÇÕ¸¸ »ý¼ºÇßÀ¸¹Ç·Î ³»ºÎ´Â ÅÖ ºñ¾î ÀÖ´Ù.
¼³¸í´ë·Î ¼¹ö Ž»ö±â³ª µµ±¸ »óÀÚ¿¡¼ °³Ã¼¸¦ ²ø¾î´Ù ³õ¾Æ µ¥ÀÌÅÍ ÁýÇÕ¿¡ »õ Ç׸ñÀ» Ãß°¡ÇÑ´Ù. ¼¹ö Ž»ö±â¿¡¼ tblPeopleÀ̳ª tblSaleÀ» µå·¡±×ÇÏ¸é ¾î´ðÅÍ¿Í Å×ÀÌºí °³Ã¼°¡ »ý¼ºµÈ´Ù. ¿©±â¼´Â
µµ±¸ »óÀÚ¿¡¼ DataTableÀ» ²ø¾î µ¥ÀÌÅÍ ÁýÇÕ µðÀÚÀ̳ʿ¡ ¶³¾î¶ß·Á ¿ÏÀüÈ÷ ºó Å×À̺íÀ» »ý¼ºÇØ º¸ÀÚ.
¾Æ¹« ¸â¹öµµ ¾ø°í Á¤¸» ¹Ô¹ÔÇÏ°Ô »ý°å´Ù. ½ºÅ°¸¶µµ ¾ÆÁ÷ °áÁ¤µÇÁö ¾ÊÀº
Å×À̺íÀÇ ²®µ¥±â¸¸ ¸¸µç °ÍÀÌ´Ù. Æ˾÷ ¸Þ´ºÀÇ Ãß°¡/¿ Ç׸ñÀ»
¼±ÅÃÇÏ¸é »õ·Î¿î ¿ÀÌ »ý¼ºµÈ´Ù. »õ·Î Ãß°¡µÈ ¿Àº
DataColumn1, DataColumn2 ½ÄÀ¸·Î À̸§ÀÌ ºÙ´Âµ¥ ¼Ó¼ºÃ¢¿¡¼ À̸§°ú ŸÀÔ, ±âŸ
ÇÁ·ÎÆÛƼ¸¦ ÆíÁýÇÑ´Ù. Å×À̺í ÀÚüÀÇ ÇÁ·ÎÆÛƼµµ ¼Ó¼ºÃ¢¿¡¼ ÆíÁýÇÑ´Ù.
Å×À̺í À̸§Àº °³Ã¼ ŸÀÌƲ ¹Ù¿¡¼ ÀÔ·ÂÇÒ ¼ö Àִµ¥ tblPeople·Î ¹Ù²Ù¾ú´Ù. Name ¿Àº String ŸÀÔÀ¸·Î ¼±¾ðÇÏ°í MaxLength ÇÁ·ÎÆÛƼ¿¡ 10À» ÁöÁ¤Çß´Ù. Age´Â
Int32 ŸÀÔÀÌ°í MaleÀº Boolean ŸÀÔÀ̸ç
¼¼ ÇÊµå ¸ðµÎ AllowDBNull ÇÁ·ÎÆÛƼ´Â False·Î
ÁöÁ¤ÇÏ¿´´Ù. Name ¿Àº Æ˾÷ ¸Þ´º¿¡¼ ±âº»Å° ¼³Á¤À» ¼±ÅÃÇÏ¿© ±âº»Å°·Î ÁöÁ¤Çß´Ù. ÀÌ¿Ü¿¡ ÀÚµ¿ Áõ°¡ ¼Ó¼ºÀ̳ª µðÆúÆ®°ª, ³Î°ª¿¡ ´ëÇÑ Ã³¸® ¹æ½Ä µîÀ»
´õ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
°è¼ÓÇؼ tblSale Å×ÀÌºíµµ °°Àº ¹æ¹ýÀ¸·Î »ý¼ºÇÑ´Ù. ÀÌ°Í Àú°Í ÁöÁ¤ÇÒ °ÍÀÌ ¸¹¾Æ ±²ÀåÈ÷ º¹ÀâÇÑ °Í °°Áö¸¸ Å×ÀÌºí »ý¼º ½ºÅ©¸³Æ®ÀÇ Áö½Ã´ë·Î ¿À» Ãß°¡ÇÏ°í ¼Ó¼ºÀ»
ÁöÁ¤ÇÏ¸é µÈ´Ù. µ¥ÀÌÅÍ ÁýÇÕ µðÀÚÀ̳ʿ¡ ´ÙÀ½ µÎ °³ÀÇ Å×À̺íÀÌ ³ªÅ¸³´Ù.
µ¥ÀÌÅÍ ¼Ò½º ±¸¼º ¸¶¹ý»ç·Î DBMS¿¡ ÀÖ´Â Å×À̺íÀ» °¡Á®¿À¸é ¸¶¹ý»ç°¡
½ºÅ°¸¶¸¦ ºÐ¼®ÇÏ¿© °ü°èµµ ÀÚµ¿À¸·Î »ý¼ºµÈ´Ù. ÇÏÁö¸¸ ÀÌ ¿¹Á¦´Â Å×À̺íÀ» µû·Î ¸¸µç °ÍÀ̶ó °ü°è°¡ »ý¼ºµÇ¾î
ÀÖÁö ¾Ê´Ù. ´ÙÀ½Àº °ü°è¸¦ Ãß°¡ÇÑ´Ù. µµ±¸ »óÀÚ¿¡¼ RelationÀ» µå·¡±×ÇÏ¿© ÀÚ½Ä Å×À̺í À§¿¡ ¶³¾î¶ß¸°´Ù. ÀÌ °æ¿ì tblSale¿¡ ¶³¾î¶ß¸®¸é µÈ´Ù. °ü°è ¼³Á¤ ´ëÈ»óÀÚ°¡ ³ªÅ¸³´Ù.
°ü°èÀÇ À̸§°ú ºÎ¸ð Å×À̺íÀÇ Å°, ÀÚ½Ä Å×À̺íÀÇ ¿Ü·¡Å° µîÀ» ÁöÁ¤ÇÑ´Ù. µÎ °³ÀÇ Å×À̺í¹Û¿¡ ¾ø¾î ¹Ì¸® ¼±ÅõǾî ÀÖ°í °¢ Å×À̺íÀÇ Ã¹ ¹ø° ¿ÀÌ Å°·Î ¼±Á¤µÇ¾î ÀÖ´Ù. ÀÚ½Ä Å×À̺íÀÇ ¿Ü·¡Å°°¡ OrderNo·Î µÇ¾î Àִµ¥ Customer·Î ¹Ù²Û´Ù. ¾Æ·¡ÂÊÀÇ ¸¸µé ´ë»ó¿¡¼ "°ü°è ¹× ¿Ü·¡ Å° Á¦¾à Á¶°Ç ¸ðµÎ"¸¦ ¼±ÅÃÇÏ¿©
°ü°è¿Í Á¦¾àÀ» ¸ðµÎ »ý¼ºÇÑ´Ù. ¿Ü·¡Å°¿¡ ´ëÇؼ´Â ºÎ¸ð Å×À̺íÀÇ º¯È¿¡ ´ëÇÑ ÀÚ½Ä Å×À̺íÀÇ º¯°æ ±ÔÄ¢À»
¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
È®ÀÎ ¹öÆ°À» ´©¸£¸é µÎ Å×ÀÌºí »çÀÌ¿¡ Á÷¼±ÀÌ ±×¾îÁ® °ü°è°¡ ¼º¸³µÇ¾ú´Ù´Â °ÍÀÌ Ç¥½ÃµÈ´Ù. Æ˾÷ ¸Þ´º¿¡¼ °ü°è ·¹À̺í Ç¥½Ã Ç׸ñÀ» ¼±ÅÃÇϸé À̸§µµ Ãâ·ÂµÈ´Ù. °ü°è¸¦
ÆíÁýÇÏ·Á¸é ÀÌ ¼±¿¡ ´ëÇÑ Æ˾÷ ¸Þ´º¿¡¼ °ü°è ÆíÁý Ç׸ñÀ» ¼±ÅÃÇÑ´Ù.
µ¶¸³ ½ÇÇàÇü Å×ÀÌºí¿¡´Â µ¥ÀÌÅ͸¦ ä¿ì´Â Fill ³í¸®°¡ ¾øÀ¸¹Ç·Î ¾Ë¾Æ¼
ä¿ö¾ß ÇÑ´Ù. ÀÌ »óÅ¿¡¼´Â ½ÇÇàÇØ ºÃÀÚ È¸é¿¡ ¾Æ¹«°Íµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù. µÎ Å×À̺íÀ» Æû¿¡ µå·¡±×ÇÏ¿© ±×¸®µå·Î ¹ÙÀεùÇÒ ¼ö ÀÖÁö¸¸ ±×¸®µå¿¡´Â ¾Æ¹«°Íµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù. ¼¹ö¿Í ¿¬°áµÇÁö ¾ÊÀº ¸Þ¸ð¸® ³»ºÎÀÇ Å×À̺íÀ̹ǷΠÀÀ¿ë ÇÁ·Î±×·¥ Äڵ忡¼ Å×À̺íÀ» ÀÓÀÇÀÇ ¸ñÀûÀ¸·Î »ç¿ëÇÒ ¼ö
ÀÖ´Ù. Àӽà Å×À̺í·Î È°¿ëÇѴٰųª XML ÆÄÀÏ·Î ·ÎÄà DB¸¦ ±¸ÇöÇÏ´Â Á¤µµÀÇ ¿ëµµ°¡ ÀÖ´Ù.
µðÀÚÀ̳ʿ¡¼ Å×À̺íÀ» »ý¼ºÇÏ´Â ÀýÂ÷´Â ÄÚµå»ó¿¡¼ new DataTable ¸í·ÉÀ¸·Î
Å×ÀÌºí »ý¼º ÈÄ new DataColumnÀ¸·Î ¿À» ¼ø¼´ë·Î »ý¼ºÇÏ´Â °Í°ú °ÅÀÇ µ¿ÀÏÇÏ´Ù. ¾ÕÀåÀÇ MakeDataSet ¿¹Á¦¿¡¼ ¸¶¹ý»ç¾øÀÌ µ¥ÀÌÅÍ ÁýÇÕÀ» ¸¸µé¾î
º» ÀûÀÌ Àִµ¥ ÀÌ ¿¹Á¦ÀÇ Äڵ带 ¼ø¼´ë·Î ¸¶¹ý»ç¿¡ Àû¿ëÇÑ °ÍÀÌ´Ù. ºñÁÖ¾ó ȯ°æÀÇ ÆíÁý µµ±¸¸¦ »ç¿ëÇÑ´Ù
»ÓÀÌÁö ¼ÕÀ¸·Î Á÷Á¢ Å×À̺íÀ» ¸¸µå´Â °Í°ú ÀýÂ÷°¡ °ÅÀÇ °°´Ù. ´Ü, ¾î·°Å³ª
µðÀÚÀ̳ʷΠ¸¸µç Å×À̺íÀº ŸÀÔµå¶ó´Â °ÍÀÌ Å« Â÷ÀÌÁ¡ÀÌ´Ù.