ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
¸»Ê¿¿µÐ¡ËµÍø ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

VB2008´ÓÈëÃŵ½¾«Í¨(PDF¸ñʽӢÎÄ°æ)-µÚ73²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡



¡¡¡¡¡¡¡¡Dim¡¡cmd¡¡As¡¡IDbmand¡¡=¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡New¡¡Sqlmand£¨¡¨INSERT¡¡INTO¡¡draws¡¡£¨draw_date£»¡¡first_number£»¡¡second_number£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨third_number£»¡¡fourth_number£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨fifth_number£»¡¡sixth_number£»¡¡bonus£©¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨VALUES¡¡£¨@pDrawDate£»¡¡@pFirstNumber£»¡¡@pSecondNumber£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨@pThirdNumber£»¡¡@pFourthNumber£»¡¡@pFifthNumber£»¡¡@pSixthNumber£»¡¡@pBonus£©¡¨£©¡¡



¡¡¡¡¡¡¡¡cmd¡£Connection¡¡=¡¡connection¡¡



¡¡¡¡¡¡¡¡Dim¡¡paramDate¡¡As¡¡IDbDataParameter¡¡=¡¡New¡¡SqlParameter£¨£©¡¡

¡¡¡¡¡¡¡¡paramDate¡£ParameterName¡¡=¡¡¡¨@pDrawDate¡¨¡¡

¡¡¡¡¡¡¡¡paramDate¡£DbType¡¡=¡¡System¡£Data¡£DbType¡£DateTime¡¡

¡¡¡¡¡¡¡¡paramDate¡£Size¡¡=¡¡8¡¡

¡¡¡¡¡¡¡¡paramDate¡£SourceColumn¡¡=¡¡¡¨draw_date¡¨¡¡

¡¡¡¡¡¡¡¡paramDate¡£Value¡¡=¡¡DateTime¡£Now¡¡

¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨paramDate£©¡¡



¡¡¡¡¡¡¡¡Dim¡¡param¡¡As¡¡IDbDataParameter¡¡=¡¡New¡¡SqlParameter£¨£©¡¡

¡¡¡¡¡¡¡¡param¡£ParameterName¡¡=¡¡¡¨@pFirstNumber¡¨¡¡

¡¡¡¡¡¡¡¡param¡£DbType¡¡=¡¡System¡£Data¡£DbType¡£Int32¡¡

¡¡¡¡¡¡¡¡param¡£Size¡¡=¡¡4¡¡

¡¡¡¡¡¡¡¡param¡£SourceColumn¡¡=¡¡¡¨first_number¡¨¡¡

¡¡¡¡¡¡¡¡param¡£Value¡¡=¡¡1¡¡

¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨param£©¡¡



¡¡¡¡¡¡¡¡¡£¡¡¡£¡¡¡£¡¡



¡¡¡¡¡¡¡¡param¡¡=¡¡New¡¡SqlParameter£¨£©¡¡

¡¡¡¡¡¡¡¡param¡£ParameterName¡¡=¡¡¡¨@pBonus¡¨¡¡

¡¡¡¡¡¡¡¡param¡£DbType¡¡=¡¡System¡£Data¡£DbType¡£Int32¡¡

¡¡¡¡¡¡¡¡param¡£Size¡¡=¡¡4¡¡

¡¡¡¡¡¡¡¡param¡£SourceColumn¡¡=¡¡¡¨bonus¡¨¡¡

¡¡¡¡¡¡¡¡param¡£Value¡¡=¡¡1¡¡

¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨param£©¡¡



¡¡¡¡¡¡¡¡Dim¡¡retval¡¡As¡¡Integer¡¡=¡¡cmd¡£ExecuteNonQuery£¨£©¡¡

¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨retval¡¡£¨¡¨¡¡&¡¡retval¡¡&¡¡¡¨£©¡¨£©¡¡

¡¡¡¡¡¡¡¡connection¡£Close£¨£©¡¡



¡¡¡¡¡¡¡¡¡¡To¡¡execute¡¡a¡¡mand£»¡¡you¡¡need¡¡to¡¡instantiate¡¡a¡¡class¡¡that¡¡implements¡¡the¡¡¡¡IDbmand¡¡¡¡

interface£»¡¡where¡¡the¡¡constructor¡¡parameter¡¡is¡¡the¡¡SQL¡¡statement¡¡that¡¡you¡¡want¡¡to¡¡execute¡£¡¡The¡¡¡¡

SQL¡¡statement¡¡contains¡¡SQL¡¡parameters¡£¡¡How¡¡a¡¡SQL¡¡parameter¡¡is¡¡defined¡¡often¡¡depends¡¡on¡¡¡¡

the¡¡ADO¡¡implementation¡£¡¡The¡¡mand¡¡is¡¡associated¡¡with¡¡the¡¡database¡¡connection¡¡using¡¡¡¡

the¡¡cmd¡£Connection¡¡property¡£¡¡

¡¡¡¡¡¡¡¡¡¡Each¡¡parameter£»¡¡regardless¡¡of¡¡the¡¡database¡¡driver¡¡used£»¡¡is¡¡of¡¡type¡¡¡¡IDataParameter¡¡or¡¡¡¡

IDbDataParameter¡¡£¨which¡¡implements¡¡IDataParameter£©¡£¡¡The¡¡type¡¡associated¡¡with¡¡IDbDataParameter¡¡¡¡

is¡¡SqlParameter¡¡in¡¡this¡¡case£»¡¡because¡¡we¡¡are¡¡using¡¡SQL¡¡Server¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡406¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

384¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡R¡¡E¡¡L¡¡A¡¡TI¡¡O¡¡N¡¡AL¡¡¡¡¡¡DA¡¡TA¡¡B¡¡AS¡¡E¡¡¡¡¡¡D¡¡AT¡¡A¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡properties¡¡of¡¡IDbDataParameter¡¡are¡¡as¡¡follows£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡ParameterName£º¡¡Specifies¡¡the¡¡name¡¡of¡¡the¡¡parameter¡¡and¡¡must¡¡be¡¡prefixed¡¡with¡¡an¡¡at¡¡sign¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¨@£©¡¡character¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡DbType£º¡¡Specifies¡¡the¡¡type¡¡of¡¡the¡¡parameter¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡Size£º¡¡Specifies¡¡the¡¡size¡¡of¡¡the¡¡parameter¡¡£¨in¡¡bytes£©¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡SourceColumn£º¡¡Specifies¡¡in¡¡which¡¡column¡¡the¡¡parameter¡¡will¡¡be¡¡stored¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡Value£º¡¡Specifies¡¡the¡¡value¡¡for¡¡the¡¡parameter¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡öNote¡¡¡¡As¡¡a¡¡general¡¡rule¡¡of¡¡thumb£»¡¡stick¡¡to¡¡using¡¡and¡¡manipulating¡¡the¡¡standard¡¡ADO¡¡interfaces£»¡¡rather¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡than¡¡the¡¡types¡¡specific¡¡to¡¡the¡¡ADO¡¡driver¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡example¡¡shows¡¡code¡¡that¡¡you¡¡would¡¡write¡¡when¡¡you¡¡want¡¡to¡¡explicitly¡¡define¡¡the¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡attributes¡¡of¡¡every¡¡parameter¡£¡¡This¡¡was¡¡to¡¡allow¡¡you¡¡to¡¡see¡¡what¡¡is¡¡happening¡¡when¡¡parameters¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡are¡¡converted¡¡and¡¡stored¡¡in¡¡a¡¡table¡£¡¡A¡¡simpler¡¡notation¡¡is¡¡as¡¡follows£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡connection¡¡As¡¡IDbConnection¡¡=¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡New¡¡SqlConnection£¨DatabaseConsoleEx¡£My¡£Settings¡£Default¡£lotteryConnectionString£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡connection¡£Open£¨£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡cmd¡¡As¡¡IDbmand¡¡=¡¡New¡¡Sqlmand£¨¡¨INSERT¡¡INTO¡¡draws¡¡£¨draw_date£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨first_number£»¡¡second_number£»¡¡third_number£»¡¡fourth_number£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨fifth_number£»¡¡sixth_number£»¡¡bonus£©¡¡VALUES¡¡£¨@pDrawDate£»¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨@pFirstNumber£»¡¡@pSecondNumber£»¡¡@pThirdNumber£»¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&¡¡¡¨@pFourthNumber£»@pFifthNumber£»@pSixthNumber£»@pBonus£©¡¨£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Connection¡¡=¡¡connection¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pDrawDate¡¨£»¡¡DateTime¡£Now£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pFirstNumber¡¨£»¡¡10£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pSecondNumber¡¨£»¡¡1£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pThirdNumber¡¨£»¡¡30£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pFourthNumber¡¨£»¡¡19£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pFifthNumber¡¨£»¡¡2£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨New¡¡SqlParameter£¨¡¨@pSixthNumber¡¨£»¡¡21£©£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨new¡¡SqlParameter£¨¡¨@pBonus¡¨£»¡¡5£©£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Once¡¡you¡¡have¡¡defined¡¡the¡¡parameters¡¡and¡¡assigned¡¡them¡¡with¡¡a¡¡value£»¡¡the¡¡SQL¡¡query¡¡can¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡be¡¡executed¡£¡¡In¡¡the¡¡case¡¡of¡¡a¡¡SQL¡¡¡¡INSERT¡¡statement£»¡¡no¡¡data¡¡will¡¡be¡¡returned£»¡¡because¡¡you¡¡are¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sending¡¡data¡¡from¡¡the¡¡application¡¡to¡¡the¡¡database¡£¡¡Thus£»¡¡you¡¡will¡¡need¡¡to¡¡execute¡¡the¡¡method¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡that¡¡does¡¡not¡¡expect¡¡any¡¡return¡¡data£»¡¡which¡¡is¡¡¡¡ExecuteNonQuery£¨£©£»¡¡like¡¡this£º¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡407¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡HA¡¡P¡¡TE¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡AR¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡AB¡¡O¡¡U¡¡T¡¡¡¡R¡¡E¡¡L¡¡AT¡¡IO¡¡N¡¡A¡¡L¡¡¡¡¡¡D¡¡AT¡¡AB¡¡A¡¡SE¡¡¡¡¡¡D¡¡A¡¡TA¡¡385¡¡



Dim¡¡retval¡¡As¡¡Integer¡¡=¡¡cmd¡£ExecuteNonQuery£¨£©¡¡

Console¡£WriteLine£¨¡¨retval¡¡£¨¡¨¡¡&¡¡retval¡¡&¡¡¡¨£©¡¨£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡ExecuteNonQuery£¨£©¡¡returns¡¡the¡¡number¡¡of¡¡rows¡¡affected¡¡by¡¡the¡¡statement¡¡£¨which¡¡should¡¡be¡¡¡¡

1£»¡¡because¡¡we¡¯ve¡¡inserted¡¡one¡¡row£©¡£¡¡



Selecting¡¡Data¡¡from¡¡a¡¡Table¡¡



After¡¡your¡¡tables¡¡have¡¡some¡¡data£»¡¡you¡¡probably¡¡will¡¡want¡¡to¡¡retrieve¡¡the¡¡data¡£¡¡To¡¡do¡¡that£»¡¡you¡¡¡¡

use¡¡the¡¡SELECT¡¡statement¡£¡¡Here¡¡is¡¡the¡¡code¡¡for¡¡viewing¡¡data¡¡in¡¡the¡¡draws¡¡table£º¡¡



Dim¡¡connection¡¡As¡¡IDbConnection¡¡=¡¡_¡¡

¡¡¡¡New¡¡SqlConnection£¨DatabaseConsoleEx¡£My¡£Settings¡£Default¡£lotteryConnectionString£©¡¡

connection¡£Open£¨£©¡¡



Dim¡¡cmd¡¡As¡¡IDbmand¡¡=¡¡New¡¡Sqlmand£¨¡¨SELECT¡¡*¡¡FROM¡¡draws¡¨£©¡¡

cmd¡£Connection¡¡=¡¡connection¡¡

Dim¡¡reader¡¡As¡¡IDataReader¡¡=¡¡cmd¡£ExecuteReader£¨£©¡¡

While¡¡reader¡£Read£¨£©¡¡

¡¡¡¡¡¡¡¡Console¡£WriteLine£¨¡¨£¨¡¨¡¡&¡¡reader¡£GetDateTime£¨0£©¡£ToString£¨£©¡¡&¡¡¡¨£©¡¡¡¨¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡&¡¡reader¡£GetInt32£¨1£©£©¡¡

End¡¡While¡¡



reader¡£Close£¨£©¡¡

connection¡£Close£¨£©¡¡



¡¡¡¡¡¡¡¡¡¡To¡¡select¡¡data£»¡¡the¡¡steps¡¡are¡¡to¡¡open¡¡a¡¡connection£»¡¡create¡¡a¡¡mand£»¡¡and¡¡execute¡¡the¡¡¡¡

mand¡£¡¡In¡¡the¡¡example£»¡¡the¡¡SELECT¡¡statement¡¡did¡¡not¡¡have¡¡any¡¡parameters¡£¡¡SELECT¡¡*¡¡means¡¡¡¡

to¡¡select¡¡all¡¡columns¡£¡¡Alternatively£»¡¡you¡¡could¡¡define¡¡identifiers¡¡to¡¡select¡¡specific¡¡columns¡£¡¡

¡¡¡¡¡¡¡¡¡¡When¡¡you¡¡are¡¡using¡¡a¡¡SELECT¡¡statement£»¡¡the¡¡server¡¡will¡¡return¡¡data¡£¡¡To¡¡read¡¡the¡¡returned¡¡¡¡

data£»¡¡you¡¡call¡¡the¡¡method¡¡ExecuteReader£¨£©£»¡¡which¡¡will¡¡also¡¡execute¡¡the¡¡mand¡£¡¡This¡¡is¡¡different¡¡¡¡

from¡¡the¡¡ExecuteNonQuery£¨£©¡¡method¡¡you¡¡use¡¡to¡¡insert¡¡data£»¡¡mainly¡¡in¡¡that¡¡ExecuteReader£¨£©¡¡returns¡¡¡¡

an¡¡instance¡¡of¡¡IDataReader¡£¡¡IDataReader¡¡is¡¡an¡¡interface¡¡used¡¡to¡¡iterate¡¡individual¡¡records£»¡¡which¡¡¡¡

gives¡¡you¡¡the¡¡chance¡¡to¡¡retrieve¡¡the¡¡individual¡¡fields¡¡of¡¡the¡¡records£»¡¡and¡¡you¡¡can¡¡examine¡¡the¡¡¡¡

data¡¡in¡¡the¡¡columns¡¡for¡¡each¡¡record¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡To¡¡access¡¡the¡¡fields£»¡¡use¡¡the¡¡appropriate¡¡GetNNN¡¡£¨£©¡¡method£»¡¡with¡¡the¡¡index¡¡of¡¡the¡¡field¡£¡¡¡¡

Knowing¡¡which¡¡index¡¡to¡¡use¡¡is¡¡a¡¡bit¡¡perplexing¡£¡¡The¡¡index¡¡of¡¡the¡¡appropriate¡¡field¡¡is¡¡related¡¡to¡¡¡¡

the¡¡position¡¡of¡¡the¡¡column¡¡in¡¡the¡¡SELECT¡¡mand¡¡£¨though£»¡¡in¡¡this¡¡case£»¡¡we¡¯ve¡¡selected¡¡all¡¡the¡¡¡¡

data¡¡with¡¡*£»¡¡so¡¡it¡¡depends¡¡on¡¡the¡¡position¡¡of¡¡the¡¡column¡¡in¡¡the¡¡table£©¡£¡¡For¡¡example£»¡¡the¡¡following¡¡¡¡

code¡¡retrieves¡¡the¡¡fourth¡¡column¡¡from¡¡a¡¡result¡¡set¡£¡¡¡¡



reader¡£GetDouble£¨3£©¡¡



¡¡¡¡¡¡¡¡¡¡In¡¡our¡¡example£»¡¡we¡¡obtain¡¡the¡¡date¡¡and¡¡the¡¡first¡¡draw¡¡number¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡408¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

386¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡R¡¡E¡¡L¡¡A¡¡TI¡¡O¡¡N¡¡AL¡¡¡¡¡¡DA¡¡TA¡¡B¡¡AS¡¡E¡¡¡¡¡¡D¡¡AT¡¡A¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Deleting¡¡Data¡¡from¡¡the¡¡Database¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Of¡¡course£»¡¡you¡¡may¡¡need¡¡to¡¡delete¡¡data¡¡from¡¡table¡£¡¡The¡¡SQL¡¡statement¡¡for¡¡removing¡¡data¡¡from¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a¡¡table¡¡is¡¡DELETE¡£¡¡The¡¡following¡¡example¡¡deletes¡¡a¡¡particular¡¡lottery¡¡drawing¡¡entry¡¡from¡¡the¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡draws¡¡table¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡cmd¡¡As¡¡IDbmand¡¡=¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡New¡¡Sqlmand£¨¡¨DELETE¡¡FROM¡¡draws¡¡WHERE¡¡draw_date=@pDrawDate¡¨£»¡¡_¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CType£¨connection£»¡¡SqlConnection£©£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim¡¡paramDate¡¡As¡¡IDbDataParameter¡¡=¡¡New¡¡SqlParameter£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡paramDate¡£ParameterName¡¡=¡¡¡¨@pDrawDate¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡paramDate¡£DbType¡¡=¡¡System¡£Data¡£DbType¡£DateTime¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡paramDate¡£Size¡¡=¡¡8¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡paramDate¡£SourceColumn¡¡=¡¡¡¨draw_date¡¨¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡paramDate¡£Value¡¡=¡¡DateTime¡£Now¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£Parameters¡£Add£¨paramDate£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cmd¡£ExecuteNonQuery£¨£©¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡connection¡£Close£¨£©¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡As¡¡with¡¡the¡¡¡¡INSERT¡¡statement£»¡¡you¡¡use¡¡¡¡ExecuteNonQuery£¨£©¡¡with¡¡DELETE£»¡¡which¡¡does¡¡not¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return¡¡any¡¡results¡¡£¨except¡¡for¡¡the¡¡number¡¡of¡¡rows¡¡affected¡¡by¡¡the¡¡mand£©¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Recapping¡¡ADO¡¡Usage¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Looking¡¡at¡¡all¡¡of¡¡the¡¡code¡¡presented¡¡in¡¡this¡¡section£»¡¡you¡¡should¡¡notice¡¡the¡¡following¡¡points¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡about¡¡using¡¡ADO¡¡directly£º¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡There¡¡are¡¡general¡¡interfaces£»¡¡implemented¡¡by¡¡a¡¡specific¡¡library¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡The¡¡IDbConnection¡¡and¡¡IDbmand¡¡interfaces¡¡are¡¡implemented¡¡by¡¡all¡¡ADO¡¡drivers¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡¡¡SqlConnection£»¡¡Sqlmand£»¡¡and¡¡SqlParameter¡¡are¡¡specific¡¡classes¡¡from¡¡the¡¡database¡¡driver¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡o¡¡The¡¡database¡¡code¡¡involves¡¡opening¡¡a¡¡connection£»¡¡defining¡¡a¡¡SQL¡¡mand¡¡such¡¡as¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡INSERT£»¡¡SELECT£»¡¡and¡¡so¡¡on£»¡¡assigning¡¡the¡¡SQL¡¡parameters£»¡¡executing¡¡the¡¡SQL¡¡mand£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡and¡¡then¡¡closing¡¡the¡¡connection¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡öNote¡¡¡¡For¡¡more¡¡details¡¡on¡¡SQL£»¡¡see¡¡Wikipedia¡¯s¡¡SQL¡¡entry¡¡£¨http£º//en¡£wikipedia¡£org/wiki/SQL£©¡¡and¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡W3School¡¯s¡¡SQL¡¡tutorial¡¡£¨http£º//w3schools¡£/sql/default¡£asp£©¡£¡¡These¡¡provide¡¡a¡¡good¡¡expla

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nation¡¡of¡¡the¡¡basics¡¡of¡¡SQL¡£¡¡The¡¡MSDN¡¡documentation¡¡is¡¡fairly¡¡good¡¡as¡¡well¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Next£»¡¡let¡¯s¡¡take¡¡a¡¡look¡¡at¡¡another¡¡Visual¡¡Studio¡¡tool¡¡for¡¡working¡¡with¡¡database¡¡applications¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡409¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡HA¡¡P¡¡TE¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡AR¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡AB¡¡O¡¡U¡¡T¡¡¡¡R¡¡E¡¡L¡¡AT¡¡IO¡¡N¡¡A¡¡L¡¡¡¡¡¡D¡¡AT¡¡AB¡¡A¡¡SE¡¡¡¡¡¡D¡¡A¡¡TA¡¡387¡¡



Using¡¡the¡¡Dataset¡¡Designer¡¡



The¡¡Dataset¡¡Designer¡¡is¡¡a¡¡utility¡¡provided¡¡by¡¡Visual¡¡Basic¡¡Express¡¡to¡¡help¡¡you¡¡write¡¡database¡¡¡¡

applications¡£¡¡MSDN¡¡provides¡¡a¡¡detailed¡¡tutorial¡¡on¡¡how¡¡to¡¡create¡¡client¡¡data¡¡applications¡¡¡¡

£¨http£º//msdn2¡£microsoft¡£/en¡­us/library/h0y4a0f6¡£aspx£©¡£¡¡The¡¡tutorial¡¡describes¡¡how¡¡to¡¡¡¡

click¡¡options¡¡and¡¡use¡¡the¡¡wizards£»¡¡but¡¡it¡¡does¡¡not¡¡explain¡¡some¡¡of¡¡the¡¡underlying¡¡details¡£¡¡Here£»¡¡¡¡

we¡¯ll¡¡use¡¡the¡¡Dataset¡¡Designer¡¡to¡¡set¡¡up¡¡the¡¡relations¡¡between¡¡the¡¡lottery¡¡database¡¡tables£»¡¡and¡¡¡¡

take¡¡a¡¡look¡¡at¡¡the¡¡code¡¡that¡¡is¡¡generated¡¡automatically¡¡to¡¡create¡¡those¡¡relations¡£¡¡

¡¡¡¡¡¡¡¡¡¡A¡¡¡¡dataset¡¡is¡¡an¡¡in¡­memory¡¡representation¡¡of¡¡the¡¡data¡¡in¡¡the¡¡database¡£¡¡It¡¡is¡¡used¡¡for¡¡manip

ulating¡¡the¡¡data¡¡away¡¡from¡¡the¡¡database¡¡server¡¡before¡¡you¡¡update¡¡the¡¡database¡£¡¡This¡¡disconnected¡¡¡¡

form¡¡of¡¡working¡¡with¡¡the¡¡data¡¡improves¡¡performance£»¡¡because¡¡you¡¡reduce¡¡the¡¡number¡¡of¡¡times¡¡¡¡

you¡¡need¡¡to¡¡query¡¡the¡¡database¡¡server¡£¡¡



Building¡¡Relations¡¡Between¡¡Tables¡¡



The¡¡first¡¡step¡¡in¡¡using¡¡the¡¡Dataset¡¡Designer¡¡is¡¡to¡¡convert¡¡the¡¡tables¡¡in¡¡the¡¡Database¡¡Explorer¡¡to¡¡¡¡

something¡¡that¡¡the¡¡Dataset¡¡Designer¡¡can¡¡use¡£¡¡To¡¡do¡¡this£»¡¡from¡¡the¡¡Solution¡¡Explorer£»¡¡double

click¡¡the¡¡file¡¡that¡¡has¡¡the¡¡extension¡¡¡¡¡£xsd¡ªlotteryDataSet¡£xsd¡¡in¡¡our¡¡example¡£¡¡The¡¡¡¡¡£xsd¡¡file¡¡is¡¡¡¡

the¡¡XML¡¡Schema¡¡Definition¡¡file£»¡¡which¡¡translates¡¡the¡¡database¡¯s¡¡datasets¡¡into¡¡XML¡¡files¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡The¡¡lotteryDataSet¡£xsd¡¡file¡¡has¡¡a¡¡number¡¡of¡¡child¡¡files£»¡¡which¡¡you¡¡can¡¡open¡¡and¡¡inspect¡£¡¡¡¡

These¡¡files¡¡are¡¡part¡¡of¡¡a¡¡collection¡¡that¡¡is¡¡used¡¡by¡¡the¡¡Dataset¡¡Designer¡£¡¡The¡¡only¡¡file¡¡that¡¡you¡¡¡¡

can¡¡modify¡¡is¡¡lotteryDataSet¡£vb¡¡£¨which¡¡you¡¡can¡¡view¡¡by¡¡right¡­clicking¡¡¡¡lotteryDataSet¡£xsd¡¡¡¡

and¡¡selecting¡¡View¡¡Code£©¡£¡¡The¡¡other¡¡files¡¡are¡¡managed¡¡by¡¡the¡¡Dataset¡¡Designer¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡We¡¡want¡¡to¡¡build¡¡relations¡¡between¡¡the¡¡three¡¡tables¡£¡¡Relations¡¡are¡¡important¡¡because¡¡they¡¡¡¡

allow¡¡you¡¡to¡¡maintain¡¡database¡¡consistency¡£¡¡For¡¡example£»¡¡imagine¡¡adding¡¡a¡¡winner¡¡to¡¡the¡¡¡¡

winners¡¡table¡¡for¡¡a¡¡lottery¡¡drawing¡¡date¡¡that¡¡does¡¡not¡¡exist¡£¡¡Using¡¡relations£»¡¡you¡¡can¡¡enforce¡¡a¡¡¡¡

consistency¡¡check£»¡¡so¡¡that¡¡the¡¡drawing¡¡date¡¡must¡¡exist¡¡in¡¡the¡¡database¡¡before¡¡you¡¡can¡¡add¡¡a¡¡¡¡

winner¡¡for¡¡that¡¡date¡£¡¡We¡¡will¡¡define¡¡two¡¡relations£º¡¡winners¡¡with¡¡draws¡¡and¡¡winners¡¡with¡¡persons¡£¡¡¡¡

Remember¡¡that¡¡the¡¡winners¡¡table¡¡is¡¡a¡¡cross¡­reference¡¡between¡¡the¡¡persons¡¡and¡¡draws¡¡table¡£¡¡

¡¡¡¡¡¡¡¡¡¡Follow¡¡these¡¡steps¡¡to¡¡define¡¡the¡¡relations£º¡¡



¡¡¡¡¡¡¡¡¡¡1¡£¡¡¡¡Double¡­click¡¡lotteryDataSet¡£xsd¡¡in¡¡the¡¡Solution¡¡Explorer¡£¡¡You¡¡will¡¡see¡¡a¡¡message¡¡indi

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡cating¡¡that¡¡the¡¡Dataset¡¡Designer¡¡has¡¡no¡¡data¡£¡¡



¡¡¡¡¡¡¡¡¡¡2¡£¡¡¡¡Drag¡¡and¡¡drop¡¡each¡¡of¡¡the¡¡three¡¡tables¡¡you¡¡created¡¡earlier¡¡from¡¡the¡¡Database¡¡Explorer¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡onto¡¡the¡¡surface¡¡of¡¡the¡¡Dataset¡¡Designer£»¡¡as¡¡shown¡¡in¡¡Figure¡¡14¡­6¡£¡¡This¡¡automatically¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡adds¡¡default¡¡support¡¡for¡¡the¡¡three¡¡tables¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡14¡­6¡£¡¡Dataset¡¡Designer¡¡with¡¡the¡¡three¡¡tables¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡410¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

388¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡R¡¡E¡¡L¡¡A¡¡TI¡¡O¡¡N¡¡AL¡¡¡¡¡¡DA¡¡TA¡¡B¡¡AS¡¡E¡¡¡¡¡¡D¡¡AT¡¡A¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3¡£¡¡¡¡To¡¡build¡¡a¡¡relation£»¡¡right¡­click¡¡the¡¡data¡¡generator¡¡surface¡¡and¡¡choose¡¡Add¡¡¡¡Relation¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡Relation¡¡dialog¡¡box¡¡appears¡£¡¡This¡¡dialog¡¡box¡¡allows¡¡you¡¡to¡¡associate¡¡two¡¡tables¡¡via¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a¡¡specific¡¡field¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡4¡£¡¡¡¡As¡¡shown¡¡in¡¡Figure¡¡14¡­7£»¡¡specify¡¡winners¡¡as¡¡the¡¡parent¡¡table¡¡and¡¡¡¡persons¡¡as¡¡the¡¡child¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡key¡¡column¡¡is¡¡¡¡id¡£¡¡Click¡¡OK¡¡to¡¡create¡¡the¡¡relation¡£¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡14¡­7¡£¡¡Creating¡¡the¡¡winners¡¡and¡¡persons¡¡relation¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡The¡¡winners¡¡and¡¡draws¡¡relation¡¡is¡¡created¡¡in¡¡the¡¡same¡¡way¡¡as¡¡the¡¡winners¡¡and¡¡persons¡¡relation£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡except¡¡that¡¡the¡¡columns¡¡linked¡¡are¡¡draw_date£»¡¡as¡¡shown¡¡in¡¡Figure¡¡14¡­8¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡After¡¡you¡¡have¡¡created¡¡both¡¡relations£»¡¡the¡¡Dataset¡¡Designer¡¡surface¡¡should¡¡look¡¡like¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡14¡­9¡£¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡14¡­9¡¡illustrates¡¡a¡¡well¡­defined¡¡database¡¡structure¡¡that¡¡includes¡¡relations¡£¡¡The¡¡structure¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡is¡¡very¡¡important¡¡for¡¡the¡¡Dataset¡¡Designer£»¡¡because¡¡it¡¡defines¡¡how¡¡the¡¡generated¡¡code¡¡will¡¡appear¡£¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Look¡¡closely¡¡at¡¡Figure¡¡14¡­9¡¡and¡¡notice¡¡how¡¡each¡¡table¡¡representation¡¡shows¡¡Fill£»¡¡GetData£¨£©¡¡at¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡the¡¡bottom¡£¡¡The¡¡Fill£¨£©¡¡and¡¡GetData£¨£©¡¡methods¡¡are¡¡used¡¡to¡¡retrieve¡¡the¡¡data¡¡from¡¡the¡¡database¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡and¡¡convert¡¡it¡¡into¡¡data¡¡that¡¡Visual¡¡Basic¡¡can¡¡process¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡411¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C¡¡HA¡¡P¡¡TE¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡AR¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡AB¡¡O¡¡U¡¡T¡¡¡¡R¡¡E¡¡L¡¡AT¡¡IO¡¡N¡¡A¡¡L¡¡¡¡¡¡D¡¡AT¡¡AB¡¡A¡¡SE¡¡¡¡¡¡D¡¡A¡¡TA¡¡389¡¡



Figure¡¡14¡­8¡£¡¡Creating¡¡the¡¡winners¡¡and¡¡draws¡¡relation¡¡



Figure¡¡14¡­9¡£¡¡Dataset¡¡Designer¡¡surface¡¡with¡¡all¡¡tables¡¡and¡¡relations¡¡



¡¡¡¡¡¡¡¡¡¡¡¡If¡¡you¡¡were¡¡to¡¡click¡¡the¡¡table¡¡adapter£»¡¡the¡¡Dataset¡¡Designer¡¡would¡¡display¡¡the¡¡properties£»¡¡¡¡

similar¡¡to¡¡Figure¡¡14¡­10¡£¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡412¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

390¡¡¡¡¡¡¡¡¡¡¡¡¡¡CH¡¡AP¡¡T¡¡E¡¡R¡¡¡¡¡¡1¡¡4¡¡¡¡¡¡¡ö¡¡¡¡¡¡¡¡L¡¡E¡¡A¡¡R¡¡N¡¡I¡¡N¡¡G¡¡¡¡¡¡A¡¡B¡¡OU¡¡T¡¡¡¡¡¡R¡¡E¡¡L¡¡A¡¡TI¡¡O¡¡N¡¡AL¡¡¡¡¡¡DA¡¡TA¡¡B¡¡AS¡¡E¡¡¡¡¡¡D¡¡AT¡¡A¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Figure¡¡14¡­10¡£¡¡Properties¡¡of¡¡Data
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨11£© ²È£¨11£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡