Professional Documents
Culture Documents
©2010 Itnee.com
2
ﻣﻌﺮﻓـﯽ
در اﯾﻦ PDFآﻣﻮزﺷﯽ ﻗﺼﺪ دارم ﺑﺮاي داﻧﺸﺠﻮﯾﺎﻧﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﻨﺪ ﺗﻮﺳﻂ Visual Studio 2008و ﺑﺎﻻﺗﺮ و ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن
،C#ﺑﺎ SQL Serverارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﺮده و در آن ﺑﻪ ذﺧﯿﺮه و ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺑﭙﺮدازﻧﺪ ،از اﺑﺘﺪا و ﺑﺼﻮرت ﮔﺎم ﺑﻪ ﮔﺎم ،ﻣﺮاﺣﻞ را
ﺗﻮﺿﯿﺢ دﻫﻢ .ﻫﺪف از اﯾﻦ ﺑﺤﺚ ﺗﻮاﻧﺎﯾﯽ اﯾﺠﺎد اوﻟﯿﻦ ﭘﺮوژه Databaseي اﺳﺖ .اﻣﺎ در اﯾﻨﺠﺎ ﻗﺼﺪ ﻧﺪارم از ADO.NETو
ﮐﺪﻧﻮﯾﺴﯽ ﻫﺎي ﺧﺴﺘﻪ ﮐﻨﻨﺪه آن ﺑﺮاي ارﺗﺒﺎط ﺑﺎ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ اﺳﺘﻔﺎده ﮐﻨﻢ .ﺑﻠﮑﻪ از ﻃﺮﯾﻖ LINQﻫﻤﯿﻦ ﮐﺎر را ﺑﺼﻮرت ﮐﺎﻣﻼ
ﺷﯽء ﮔﺮا اﻧﺠﺎم ﺧﻮاﻫﯿﻢ داد.
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ داﻧﯿﺪ از ﻟﺤﺎظ دﺳﺘﺮﺳﯽ ﺑﻪ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ،دو ﻧﻮع راه ﺣﻞ وﺟﻮد دارد:
.1اﯾﺴﺘﮕﺎه ﮐﺎري
.2ﺳﺮور – ﮐﻼﯾﻨﺖ
در ﺣﺎﻟﺖ اول ﮐﻪ ﻣﻮﺿﻮع اﯾﻦ آﻣﻮزش اﺳﺖ ،ﺑﺼﻮرت ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ SQL Serverﺑﺮﺧﻮرد ﻣﯽ ﺷﻮد و اﻏﻠﺐ ﺑﺮاي ﭘﺮوژه ﻫﺎي داﻧﺸﺠﻮﯾﯽ
ﮐﺎﻓﯿﺴﺖ.
در ﺣﺎﻟﺖ دوم SQL Server ،را روي ﯾﮏ ﺳﯿﺴﺘﻢ Serverﻧﺼﺐ ﮐﺮده و ﻓﺎﯾﻠﻬﺎي ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را ﺑﻪ آن ﻣﺘﺼﻞ ) (Attachﻣﯽ ﮐﻨﯿﻢ ﯾﺎ ﻣﯽ ﺳﺎزﯾﻢ.
ﺳﭙﺲ در ﻗﺴﻤﺖ Securityﻧﺮم اﻓﺰار ﻣﺪﯾﺮﯾﺖ SQL Serverﯾﺎ ﻫﻤﺎن SQL Server Management Studioﮐﺎرﺑﺮان و ﺳﻄﻮح دﺳﺘﺮﺳﯽ آﻧﻬﺎ
ﺑﻪ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﯿﻢ .ﺳﭙﺲ در ﮐﺎﻣﭙﯿﻮﺗﺮ ﮐﻼﯾﻨﺖ ﺷﺮوع ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﮐﺮده و ﻫﺮ زﻣﺎن ﮐﻪ ﻻزم ﺷﺪ ﺗﻮﺳﻂ راﺑﻂ وﯾﮋوال اﺳﺘﻮدﯾﻮ ﺑﺎ
ﺳﺮور و ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ،ﺗﻮﺳﻂ ﮐﺎرﺑﺮ ﺗﻌﺮﯾﻒ ﺷﺪه ،ارﺗﺒﺎط ﺑﺮﻗﺮار ﻣﯽ ﮐﻨﯿﻢ اﯾﻦ ارﺗﺒﺎط ﺗﻮﺳﻂ ﯾﮏ رﺷﺘﻪ ﮐﺪ ﺑﻪ ﻧﺎم Connection Stringاﻧﺠﺎم ﻣﯽ
ﮔﯿﺮد ﮐﻪ ﺧﻮد وﯾﮋوال اﺳﺘﻮدﯾﻮ آﻧﺮا ﻣﯽ ﺳﺎزد .ﺳﭙﺲ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﺧﻮد Setupﻣﯽ ﺳﺎزﯾﻢ )ﺗﻮﺳﻂ (Visual Studioو آﻧﺮا در ﮐﻼﯾﻨﺘﻬﺎي دﯾﮕﺮ ﻧﯿﺰ
ﻧﺼﺐ ﻣﯽ ﮐﻨﯿﻢ .در واﻗﻊ ﻧﻤﻮﻧﻪ ﻫﺎي ﺑﺮﻧﺎﻣﻪ ،ﺑﺎ ﺳﺮور ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﺮده و ﺑﻄﻮر ﻣﺸﺘﺮك ﻧﺴﺒﺖ ﺑﻪ اﻧﺠﺎم ﭼﻬﺎر ﻋﻤﻞ اﺻﻠﯽ روي داده ﻫﺎ )اﯾﺠﺎد،
وﯾﺮاﯾﺶ ،ﺣﺬف و ﺟﺴﺘﺠﻮ( اﻗﺪام ﻣﯽ ﮐﻨﻨﺪ.
ﺑﺮاي ارﺗﺒﺎط ﺑﺎ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﻧﯿﺎز ﺑﻪ ﯾﮏ راﺑﻂ دارﯾﻢ ﮐﻪ ﺟﺪوﻟﻬﺎ ،ﭘﺮوﺳﯿﺠﺮﻫﺎي ذﺧﯿﺮه ﺷﺪه و ﺳﺎﯾﺮ اﺷﯿﺎء ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را در ﺧﻮد ﻧﮕﻬﺪاري و ﺑﻪ
روز رﺳﺎﻧﯽ ﮐﻨﺪ .ﮐﺎر ﺑﺎ راﺑﻄﻬﺎي ﻗﺪﯾﻤﯽ ﻣﺎﻧﻨﺪ ADO ،DAOو ADO.NETﺑﺴﯿﺎر ﻧﺎﺧﻮﺷﺎﯾﻨﺪ و اﻏﻠﺐ ﻫﻤﺮاه ﺑﺎ ﺧﻄﺎ و ﭘﯿﭽﯿﺪه ﺑﻮد و ﻫﻤﺎن ﻧﻘﻄﻪ اي
ﺑﻮد ﮐﻪ ﺗﺎزه ﮐﺎرﻫﺎ ﻣﻌﻤﻮﻻ ﭘﺲ از رﺳﯿﺪن ﺑﻪ آن ،دﯾﮕﺮ اداﻣﻪ ﻧﻤﯽ دادﻧﺪ! اﻣﺎ ﻣﺎﯾﮑﺮوﺳﺎﻓﺖ ﺳﺮاﻧﺠﺎم در .NET 3.0ﻧﮕﺎه ﺷﯽء ﮔﺮاي ﺧﻮد را ﺑﺎ ﺗﻮﺳﻌﻪ
،LINQﺑﻪ ﺗﮑﺎﻣﻞ ﺗﺤﺴﯿﻦ ﺑﺮاﻧﮕﯿﺰي رﺳﺎﻧﺪ و اﯾﻦ ﺑﺨﺶ از ﮐﺎر ،اﮐﻨﻮن ﺟﺰو ﻟﺬت ﺑﺨﺶ ﺗﺮﯾﻦ ﻣﺮاﺣﻞ ﺗﻮﺳﻌﻪ ﻧﺮم اﻓﺰارﻫﺎي ﻣﺒﺘﻨﯽ ﺑﺮ دﯾﺘﺎﺑﯿﺲ اﺳﺖ.
3
ﭘﺎﻧﻞ Server Explorerرا ﺑﺮاي اﯾﺠﺎد ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﻓﻌﺎل ﮐﻨﯿﺪ) .ﺷﮑﻞ (1
ﺷﮑﻞ - 1ﻓﻌﺎل ﮐﺮدن ﭘﺎﻧﻞ Server Explorerﺑﺮاي اﯾﺠﺎد و ﻣﺪﯾﺮﯾﺖ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ
4
ﺑﺮاي اﯾﺠﺎد ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ و ،Connection Stringآﯾﮑﻦ Connect to Databaseرا ﮐﻠﯿﮏ ﮐﻨﯿﺪ )ﺷﮑﻞ (2
ﻣﺮاﺣﻞ اﯾﺠﺎد ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را ﻣﺎﻧﻨﺪ ﺷﮑﻠﻬﺎي 3و 4اﻧﺠﺎم دﻫﯿﺪ :
ﭘﺲ از اﯾﻦ ﻣﺮﺣﻠﻪ ،ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ اﯾﺠﺎد ﺷﺪه و ﺑﻪ ﭘﺎﻧﻞ Server Explorerاﺿﺎﻓﻪ ﻣﯽ ﺷﻮد )ﺷﮑﻞ (5آﻧﺮا از ﺳﺎﺧﺘﺎر درﺧﺘﯽ ﺑﺎز ﮐﺮده و ﺑﺎ
ﮐﻠﯿﮏ راﺳﺖ روي ،Tableاوﻟﯿﻦ ﺟﺪول را اﯾﺠﺎد ﻣﯽ ﮐﻨﯿﻢ .در ﻫﻨﮕﺎم وارد ﮐﺮدن ﻧﺎم ﻓﯿﻠﺪﻫﺎ ،ﺑﺎ ﮐﻠﯿﮏ راﺳﺖ روي اوﻟﯿﻦ ﻓﯿﻠﺪ ،آﻧﺮا ﺑﻪ ﻋﻨﻮان
ﮐﻠﯿﺪ اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ) .ﺷﮑﻞ (6
ﺟﺪول را ﺑﺎ ﻫﻤﺎن ﻧﺎم ﭘﯿﺶ ﻓﺮض ذﺧﯿﺮه ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي وﯾﺮاﯾﺶ ﺟﺪول ﯾﺎ دﯾﺪن اﻃﻼﻋﺎت آن ،روي ﻧﺎم ﺟﺪول ﮐﻠﯿﮏ راﺳﺖ ﮐﺮده و ﮔﺰﯾﻨﻪ
ﻣﺮﺑﻮﻃﻪ را اﻧﺘﺨﺎب ﻣﯽ ﮐﻨﯿﻢ) .ﺷﮑﻞ (7
ﺷﮑﻞ - 7اﻧﺠﺎم ﺗﻐﯿﯿﺮات روي ﺳﺎﺧﺘﺎر ﺟﺪول و ﯾﺎ ﻧﻤﺎﯾﺶ داده ﻫﺎي آن
8
ﺣﺎل ﻧﻮﺑﺖ ﺑﻪ ذﺧﯿﺮه ،وﯾﺮاﯾﺶ و ﺣﺬف در ﺟﺪول ﻣﯽ رﺳﺪ .ﻣﺎ اﯾﻦ اﻋﻤﺎل را ﺗﻮﺳﻂ ﭘﺮوﺳﯿﺠﺮﻫﺎي ذﺧﯿﺮه ﺷﺪه اﻧﺠﺎم ﻣﯽ دﻫﯿﻢ .ﭘﺮوﺳﯿﺠﺮﻫﺎي
ذﺧﯿﺮه ﺷﺪه ﺑﻬﺘﺮﯾﻦ ﺣﺎﻟﺖ را از ﻧﻈﺮ ﺳﺮﻋﺖ ﺗﺮاﮐﻨﺶ ،ﮐﺪ ﻧﻮﯾﺴﯽ ﭼﻨﺪ ﻻﯾﻪ ،ﻓﺮاﻫﻢ ﮐﺮدن اﻣﮑﺎن ﺗﻐﯿﯿﺮات ﺳﺮﯾﻊ در ﺑﺮﻧﺎﻣﻪ و ...اﯾﺠﺎد ﻣﯽ ﮐﻨﻨﺪ.
ﺑﺮاي اﯾﻦ ﮐﺎر ،ﻫﻤﺎﻧﻨﺪ اﯾﺠﺎد ﯾﮏ ﺟﺪول ،اﯾﻦ ﺑﺎر روي Stored Proceduresﮐﻠﯿﮏ راﺳﺖ ﻣﯽ ﮐﻨﯿﻢ) .ﺷﮑﻞ (8
ﺷﮑﻞ - 8اﯾﺠﺎد ﭘﺮوﺳﯿﺠﺮ ذﺧﯿﺮه ﺷﺪه ﺑﺮاي اﻧﺠﺎم اﻋﻤﺎل ذﺧﯿﺮه ،وﯾﺮاﯾﺶ و ﺣﺬف از ﺟﺪول ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ
ﺑﺮاي ﻧﻮﺷﺘﻦ ﭘﺮوﺳﯿﺠﺮ ذﺧﯿﺮه ،ﻫﻤﻪ ﮐﺪﻫﺎي ﭘﯿﺶ ﻓﺮض را ﺣﺬف ﮐﺮده و ﮐﺪ زﯾﺮ را ﺟﺎﯾﮕﺰﯾﻦ آن ﮐﻨﯿﺪ .ﺳﭙﺲ دﮐﻤﻪ Saveرا ﺑﺰﻧﯿﺪ .ﺑﺎ اﯾﻦ ﮐﺎر
ﯾﮏ ﭘﺮوﺳﯿﺠﺮ ﺑﻪ ﻧﺎم pSaveاﯾﺠﺎد ﻣﯽ ﺷﻮد) .ﺷﮑﻞ (9
ﺑﺮاي ﻧﻮﺷﺘﻦ ﭘﺮوﺳﯿﺠﺮ وﯾﺮاﯾﺶ ،ﻣﺎﻧﻨﺪ ﻣﺮﺣﻠﻪ ﻗﺒﻞ ﯾﮏ ﭘﺮوﺳﯿﺠﺮ ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ و ﮐﺪ زﯾﺮ را ﺟﺎﯾﮕﺰﯾﻦ آن ﮐﻨﯿﺪ .ﺳﭙﺲ دﮐﻤﻪ Saveرا ﺑﺰﻧﯿﺪ.
ﺑﺎ اﯾﻦ ﮐﺎر ﯾﮏ ﭘﺮوﺳﯿﺠﺮ ﺑﻪ ﻧﺎم pEditاﯾﺠﺎد ﻣﯽ ﺷﻮد.
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﺸﺎﻫﺪه ﻣﯽ ﮐﻨﯿﺪ ﭘﺎراﻣﺘﺮﻫﺎي ورودي ﭘﺮوﺳﯿﺠﺮ ذﺧﯿﺮه و وﯾﺮاﯾﺶ ﺑﺎ ﻫﻢ ﯾﮑﺴﺎن ﻫﺴﺘﻨﺪ )ﮐﻪ اﻟﺒﺘﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ در ﭘﺮوﺳﯿﺠﺮ وﯾﺮاﯾﺶ ﻓﻘﻂ
ﻓﯿﻠﺪﻫﺎﯾﯽ را ﺑﻪ ﻋﻨﻮان ﭘﺎراﻣﺘﺮ ورودي ﺗﻌﯿﯿﻦ ﮐﻨﯿﺪ ﮐﻪ ﺗﻐﯿﯿﺮات دارﻧﺪ( .در ﺧﻂ 4ﮐﺪ وﯾﺮاﯾﺶ ،از ﺷﺮط اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ .در اﯾﻨﺠﺎ ﻓﯿﻠﺪ ﮐﻠﯿﺪ اوﻟﯿﻪ
را ﻣﯽ ﻧﻮﯾﺴﯿﻢ
ﺑﺮاي ﻧﻮﺷﺘﻦ ﭘﺮوﺳﯿﺠﺮ ﺣﺬف ﻓﻘﻂ ﺑﻪ ﻓﯿﻠﺪ ﮐﻠﯿﺪ اوﻟﯿﻪ ﻧﯿﺎز دارﯾﻢ .ﭘﺮوﺳﯿﺠﺮ ﺟﺪﯾﺪي اﯾﺠﺎد ﮐﻨﯿﺪ و ﮐﺪ زﯾﺮ را در آن ﺑﻨﻮﯾﺴﯿﺪ و دﮐﻤﻪ Saveرا
ﺑﺰﻧﯿﺪ:
ﺳﭙﺲ ﮔﺰﯾﻨﻪ LINQ to SQL Classesرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ و ﻣﻄﺎﺑﻖ ﺷﮑﻞ 11ﻧﺎم LINQرا ﺑﻪ آن ﺑﺪﻫﯿﺪ.
ﭘﺲ از اﯾﺠﺎد ﻣﺤﯿﻂ ،LINQﭼﻬﺎر ﺷﯽء اﯾﺠﺎد ﺷﺪه در ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ) (Table1, pSave, pEdit, pDeleteرا ﺑﻪ ﭘﺎﻧﻠﻬﺎي آن درگ ﮐﻨﯿﺪ .ﭘﺎﻧﻞ
ﺳﻤﺖ ﭼﭗ ﺑﺮاي ﺟﺪاول و وﯾﻮﻫﺎ و ﭘﺎﻧﻞ ﺳﻤﺖ راﺳﺖ ﺑﺮاي ﭘﺮوﺳﯿﺠﺮﻫﺎي ذﺧﯿﺮه ﺷﺪه) .ﺷﮑﻞ (12ﺿﻤﻦ اﻧﺘﻘﺎل اﺷﯿﺎء ﺑﻪ ﻣﺤﯿﻂ ،LINQوﯾﮋوال
اﺳﺘﻮدﯾﻮ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را ﺑﻪ ﻣﺴﯿﺮ ﭘﺮوژه ﮐﭙﯽ ﮐﺮده و Connection Stringﻻزم را ﻧﯿﺰ ﻣﯽ ﺳﺎزد) .ﺷﮑﻞ (13
ﺷﮑﻞ - 13ﺗﺎﯾﯿﺪﯾﻪ اﻧﺘﻘﺎل ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﺑﻪ ﻣﺴﯿﺮ ﭘﺮوژه و اﯾﺠﺎد Connection Stringﺑﺮاي ارﺗﺒﺎط ﺑﺎ آن
12
ﺷﮑﻞ - 14اﺿﺎﻓﻪ ﺷﺪن ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﺑﻪ ﭘﺮوژه ،ﻫﻨﮕﺎم اﺿﺎﻓﻪ ﮐﺮدن اﺷﯿﺎء آن ﺑﻪ ﻣﺤﯿﻂ LINQ
ﻧﮑﺘﻪ :ﭘﺲ از ﻫﺮ ﺗﻐﯿﯿﺮ در ﺟﺪاول ،وﯾﻮﻫﺎ و ﯾﺎ ﭘﺮوﺳﯿﺠﺮﻫﺎي ذﺧﯿﺮه ﺷﺪه در ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ،ﺑﺎﯾﺪ LINQرا ﻧﯿﺰ آﭘﺪﯾﺖ ﮐﺮد .ﺑﺮاي اﯾﻦ ﮐﺎر ﮐﺎﻓﯿﺴﺖ آن
ﺷﯽء را از LINQﺣﺬف ﮐﺮده و دوﺑﺎره از ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﺑﻪ آن درگ ﮐﻨﯿﺪ و ﻓﺎﯾﻞ LINQ.dbmlرا ﻣﺠﺪدا ذﺧﯿﺮه ﮐﻨﯿﺪ.
در واﻗﻊ ﺑﺎ اﯾﻦ دو ﺧﻂ ﮐﺪ ،ﺷﻤﺎ ﻣﻮﻓﻖ ﺑﻪ ذﺧﯿﺮه ﯾﮏ رﮐﻮرد در ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ﺷﺪه اﯾﺪ!
ﺧﻂ اول ﯾﮏ ﻣﺘﻐﯿﺮ از ﺷﯽء LINQاﯾﺠﺎد ﻣﯽ ﮐﻨﺪ و ﺧﻂ دوم ﭘﺮوﺳﯿﺠﺮ pSaveرا از LINQﻓﺮاﺧﻮاﻧﯽ ﮐﺮده و ﻣﻘﺎدﯾﺮ ﮐﻨﺘﺮﻟﻬﺎي روي ﻓﺮم را ﺑﻪ
آن ارﺳﺎل ﻣﯽ ﮐﻨﺪ ﺗﺎ در ﺟﺪول ذﺧﯿﺮه ﺷﻮد.
اﻟﺒﺘﻪ ﻓﺮض ﺑﺮ اﯾﻦ اﺳﺖ ﮐﻪ ﺷﻤﺎ ﭼﮏ ﻣﯽ ﮐﻨﯿﺪ ،ﮐﺎرﺑﺮ ﻫﻤﻪ ﻣﻘﺎدﯾﺮ روي ﻓﺮم را ﺑﻪ درﺳﺘﯽ وارد ﮐﺮده اﺳﺖ ،و ﺑﺮاي ردﯾﻒ ) (txRowﮐﻪ ﮐﻠﯿﺪ ﺟﺪول
اﺳﺖ ،ﯾﮏ ﻣﻘﺪار ﻋﺪدي ﻏﯿﺮ ﺗﮑﺮاري وارد ﺷﺪه اﺳﺖ .و ﭘﺲ از ذﺧﯿﺮه در ﺟﺪول ﻫﻤﻪ TextBoxﻫﺎ را ﺧﺎﻟﯽ ﻣﯽ ﮐﻨﯿﺪ.
ADO.NET
;//using System.Data
;//using System.Data.SqlClient
ﺑﺮاي ﻣﻠﻤﻮس ﺑﻮدن ﻋﻤﻞ ذﺧﯿﺮه ،ﺑﻬﺘﺮ اﺳﺖ ﺑﻪ ﺟﺎي ﭘﯿﺎﻣﻬﺎي ﺛﺒﺖ ﻣﻮﻓﻘﯿﺖ آﻣﯿﺰ و اﻋﻤﺎﻟﯽ از اﯾﻦ ﻗﺒﯿﻞ ،ﻧﺘﯿﺠﻪ را ﺑﻼﻓﺎﺻﻠﻪ در ﯾﮏ ﮔﺮاﯾﺪ ،ﺑﻪ روز
رﺳﺎﻧﯽ ﮐﻨﯿﺪ .ﺑﺮاي اﯾﻦ ﮐﺎر از Toolboxو زﯾﺮ ﻣﺠﻤﻮﻋﻪ ،Dataروي ﮐﻨﺘﺮل DataGridViewدوﺑﺎر ﮐﻠﯿﮏ ﮐﻨﯿﺪ .ﻧﺎم آﻧﺮا gvTable1ﻗﺮار
دﻫﯿﺪ و ﻣﻄﺎﺑﻖ ﺷﮑﻞ 16ﺧﺼﻮﺻﯿﺎت دﯾﮕﺮ آﻧﺮا ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ .ﺳﭙﺲ ﮐﺪ زﯾﺮ را ﺑﻪ اﻧﺘﻬﺎي دﺳﺘﻮرات دﮐﻤﻪ Saveاﺿﺎﻓﻪ ﮐﻨﯿﺪ:
;gvTable1.DataSource = db.Table1s
اﯾﻦ دﺳﺘﻮر ﺳﺒﺐ ﻣﯽ ﺷﻮد ﺑﺎ ﻫﺮ ﺑﺎر ذﺧﯿﺮه رﮐﻮرد ﺟﺪﯾﺪ در ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ ،دوﺑﺎره ﺟﺪول Table1ﺑﻪ ﮔﺮاﯾﺪ ﺑﺎرﮔﺬاري ﺷﻮد) .ﮔﺮاﯾﺪ Refreshﺷﻮد( .ﺑﻬﺘﺮ
اﺳﺖ در ﻫﻨﮕﺎم Loadﺷﺪن ﻓﺮم ﻧﯿﺰ ﻫﻤﯿﻦ ﮐﺪ را ﻗﺮار دﻫﯿﻢ ﺗﺎ ﻣﺤﺘﻮﯾﺎت ﺟﺪول ﻧﻤﺎﯾﺶ داده ﺷﻮد .ﺗﺎ اﯾﻦ ﻣﺮﺣﻠﻪ Form1 ،ﺷﺎﻣﻞ دو روﯾﺪاد زﯾﺮ ﺧﻮاﻫﺪ ﺑﻮد:
ﻧﮑﺘﻪ ﻣﻬﻢ:
در اﯾﻦ ﻣﺮﺣﻠﻪ ،ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﮐﻨﯿﺪ و ﭼﻨﺪ رﮐﻮرد ﺑﻪ آن اﺿﺎﻓﻪ ﮐﻨﯿﺪ .ﭼﻨﺎﻧﭽﻪ ﺑﺮﻧﺎﻣﻪ را Closeﮐﺮده و دوﺑﺎره ﺑﺎز ﮐﻨﯿﺪ ﻣﯽ ﺑﯿﻨﯿﺪ ﻫﯿﭻ ﮐﺪام از رﮐﻮردﻫﺎي ذﺧﯿﺮه
ﺷﺪه وﺟﻮد ﻧﺪارد ! ﻧﮕﺮان ﻧﺒﺎﺷﯿﺪ .ﺷﻤﺎ در ﺣﺎﻟﺖ Debugﻫﺴﺘﯿﺪ .در ﻣﺤﯿﻂ وﯾﻨﺪوز ،ﺑﻪ ﻣﺴﯿﺮ ﭘﺮوژه ﺑﺮوﯾﺪ و از ﭘﻮﺷﻪ bin > Debugﻓﺎﯾﻞ
Itnee.exeرا اﺟﺮا ﮐﻨﯿﺪ .و ﻧﺘﯿﺠﻪ را ﺑﺒﯿﻨﯿﺪ .ﺗﺎ زﻣﺎن Setupﺳﺎزي و اﯾﺠﺎد ﭘﺮوژه ﮐﺎﻣﻞ ﺻﺒﺮ ﮐﻨﯿﺪ.
ﻫﺎي روي ﻓﺮم دﯾﮕﺮي ﻣﻨﺘﻘﻞ ﺷﻮد و آﻧﺠﺎ ﻋﻤﻞ وﯾﺮاﯾﺶ راTextBox اﻃﻼﻋﺎت آن ردﯾﻒ ﺑﻪ، ﺑﺎ دوﺑﺎر ﮐﻠﯿﮏ ﮐﺎرﺑﺮ روي ﯾﮏ ردﯾﻒ از ﮔﺮاﯾﺪ:روش ب
: ﺑﺴﺎزﯾﺪfrEdit ﻓﺮﻣﯽ ﺑﺎ ﻣﺸﺨﺼﺎت زﯾﺮ و ﺑﺎ ﻧﺎم. از روش ب اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ، ﺑﻪ دﻟﯿﻞ ﺟﻨﺒﻪ آﻣﻮزﺷﯽ داﺷﺘﻦ اﯾﻦ ﭘﺮوژه.اﻧﺠﺎم دﻫﯿﻢ
ﮐﺪ زﯾﺮ را ﺑﻨﻮﯾﺴﯿﺪ )ﻓﺮم وﯾﺮاﯾﺶ را ﻓﺮاﺧﻮاﻧﯽ ﻣﯽ ﮐﻨﺪ و ﺳﻠﻮﻟﻬﺎي ﮔﺮاﯾﺪ را ﺑﻪ ﮐﻨﺘﺮﻟﻬﺎي آن ﻣﯽ، ﮔﺮاﯾﺪDoubleClick ﺑﺮاي روﯾﺪاد،در ﻓﺮم اﺻﻠﯽ
(. دارﻧﺪ ﺗﺎ از ﻓﺮم اﺻﻠﯽ ﺑﺘﻮان آﻧﻬﺎ را دﯾﺪModifiers=Public ﺧﺼﻮﺻﯿﺖfrEdit ﻓﺮمTextBox ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﻫﺮ ﺳﻪ.ﻓﺮﺳﺘﺪ
ﻫﻤﺎﻧﻄﻮر ﮐﻪ دﯾﺪﯾﺪ LINQﻗﺪرت و ﺳﺮﻋﺖ زﯾﺎدي ﺑﻪ ﺗﻮﺳﻌﻪ دﻫﻨﺪﮔﺎن ﻣﯽ دﻫﺪ و ﻫﺰﯾﻨﻪ ﻧﮕﻬﺪاري و اﯾﺠﺎد وﯾﺮاﯾﺶ ﻫﺎي ﺑﻌﺪي ﺑﺮﻧﺎﻣﻪ را ﮐﺎﻫﺶ ﻣﯽ
دﻫﺪ .در اﯾﻦ ﭘﺮوژه ﻣﺎ از ﻫﯿﭽﮑﺪام از اﺷﯿﺎء ADO.NETاﺳﺘﻔﺎده ﻧﮑﺮدﯾﻢ و ﺑﺎ ﮐﺪ ﻧﻮﯾﺴﯽ ﺧﯿﻠﯽ ﮐﻤﯽ ﻣﻮﻓﻖ ﺑﻪ اﻧﺠﺎم اﻋﻤﺎل اﺻﻠﯽ روي دﯾﺘﺎﺑﯿﺲ
ﺷﺪﯾﻢ .ﻫﻤﭽﻨﯿﻦ ﺗﻮﺳﻌﻪ Applicationو Databaseرا در ﻻﯾﻪ ﻫﺎي ﮐﺎﻣﻼ ﻣﺠﺰا و ﮐﻨﺘﺮل ﺷﺪه اﻧﺠﺎم دادﯾﻢ) .ﮐﺪﻫﺎي C#و SQLرا ﺗﺮﮐﯿﺐ
ﻧﮑﺮدﯾﻢ( اﯾﻦ ﮐﺎر ﺑﺮاي ﭘﺮوژه ﻫﺎي ﺑﺰرگ ،ﺑﺴﯿﺎر ﺣﺎﺋﺰ اﻫﻤﯿﺖ اﺳﺖ.
17
ﺟﺴﺘﺠﻮ در ﺟﺪول
ﻓﺮاﻫﻢ ﮐﺮدن ﺟﺴﺘﺠﻮي اﻃﻼﻋﺎت ﺟﺪول ،ﺣﻠﻘﻪ ﮐﺪ ﻧﻮﯾﺴﯽ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ را ﮐﺎﻣﻞ ﻣﯽ ﮐﻨﺪ .ﺑﺮاي آﺷﻨﺎﯾﯽ ﺑﯿﺸﺘﺮ ﺑﺎ ،LINQاﯾﻦ ﻣﺮﺣﻠﻪ را ﺗﻮﺳﻂ
ﭘﺮوﺳﯿﺠﺮ ذﺧﯿﺮه ﺷﺪه ﻧﻤﯽ ﻧﻮﯾﺴﯿﻢ )ﻫﺮﭼﻨﺪ ﻧﻮﺷﺘﻦ ﭘﺮوﺳﯿﺠﺮي ﺑﺎ ﻧﺎم pSearchﮐﻪ ﭘﺎراﻣﺘﺮ ورودي آن ،ﻓﯿﻠﺪ ﻣﻮرد ﺟﺴﺘﺠﻮ ﯾﺎ ﺑﺨﺸﯽ از آن ﺑﺎﺷﺪ ﯾﮏ
راه ﺣﻞ ﺧﻮب اﺳﺖ( .ﻓﺮم را ﻣﻄﺎﺑﻖ ﺷﮑﻞ 19ﺗﻐﯿﯿﺮ دﻫﯿﺪ:
در اﯾﻨﺠﺎ ﻣﺎ ﺷﺮﻃﯽ روي ﺟﺪول وﺿﻊ ﮐﺮده اﯾﻢ ﮐﻪ ﺗﻮﺳﻂ ﻋﺒﺎرات ﻻﻣﺒﺪاي LINQﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ C .ﻣﺘﻐﯿﺮي اﺳﺖ ﮐﻪ ﺑﻪ ﺟﺪول اﺷﺎره ﻣﯽ ﮐﻨﺪ و
ﻓﯿﻠﺪ Familyآﻧﺮا ﻓﺮاﺧﻮاﻧﯽ ﮐﺮده اﯾﻢ .ﻋﺒﺎرت ﺷﺮﻃﯽ ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ:
ﻫﺮ رﮐﻮردي ﮐﻪ ﺑﺨﺶ ﺳﻤﺖ ﭼﭗ )ﺑﻪ ﻃﻮل (txFamilySearchﻓﯿﻠﺪ Familyآن ﻣﺴﺎوي ﻋﺒﺎرت ﻣﻮرد ﺟﺴﺘﺠﻮ ﺑﻮد را اﻧﺘﺨﺎب ﮐﻦ.
18
ﺑﺮروي Application Folderﮐﻠﯿﮏ راﺳﺖ ﮐﻨﯿﺪ و ﻣﻄﺎﺑﻖ ﺷﮑﻞ ،21ﺧﺮوﺟﯽ ﺑﺮﻧﺎﻣﻪ را ﺑﻪ ﭘﺮوژه Setupﻣﻨﺘﻘﻞ ﮐﻨﯿﺪ .در ﭘﻨﺠﺮه اي ﮐﻪ ﭘﺲ از آن
ﺑﺎز ﻣﯽ ﺷﻮد ،دﮐﻤﻪ OKرا ﺑﺰﻧﯿﺪ.
ﺣﺎل ﻧﻮﺑﺖ ﺑﻪ اﯾﺠﺎد Shortcutﻓﺎﯾﻞ اﺟﺮاﯾﯽ در دﺳﮑﺘﺎپ و ﯾﺎ ﻣﻨﻮي اﺳﺘﺎرت ﺳﯿﺴﺘﻢ ﻣﻘﺼﺪ اﺳﺖ .ﺑﺮاي اﯾﻦ ﮐﺎر ﻣﻄﺎﺑﻖ ﺷﮑﻞ ،22روي ﺧﺮوﺟﯽ
ﺑﺮﻧﺎﻣﻪ ﮐﻠﯿﮏ راﺳﺖ ﮐﻨﯿﺪ و ﯾﮏ ﺷﻮرﺗﮑﺎت ﺑﺴﺎزﯾﺪ:
ﻫﻨﻮز ﯾﮏ ﻗﺴﻤﺖ ﻣﻬﻢ ﺑﺎﻗﯽ ﻣﺎﻧﺪه اﺳﺖ .ﭘﺮوژه ﻣﺎ داراي ﯾﮏ ﺑﺎﻧﮏ اﻃﻼﻋﺎﺗﯽ اﺳﺖ ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ Setupاﺿﺎﻓﻪ ﺷﻮد .ﺑﺮاي اﯾﻦ ﮐﺎر ،دوﺑﺎره در ﻗﺴﻤﺖ
Application Folderﮐﻠﯿﮏ راﺳﺖ ﮐﻨﯿﺪ )ﺷﮑﻞ (23
ﺑﻪ ﻣﺴﯿﺮ ﭘﺮوژه ﺑﺮوﯾﺪ و 2ﻓﺎﯾﻞ itnee.mdfو itnee_log.ldfرا اﻧﺘﺨﺎب و اﺿﺎﻓﻪ ﮐﻨﯿﺪ.
ﭘﺲ از اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﯾﻠﻬﺎ ،ﺧﺼﻮﺻﯿﺎت ﭘﺮوژه Setupرا ﺳﻔﺎرﺷﯽ ﻣﯽ ﮐﻨﯿﻢ .ﺗﺎ ﻧﺎم ﭘﺮوژه ﻫﻨﮕﺎم Setupو ،Uninstallﺷﺮﮐﺖ ﺳﺎزﻧﺪه ،ﻧﺴﺨﻪ ﻧﺮم
اﻓﺰار و ...ﻣﻘﺎدﯾﺮ درﺳﺘﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪ .ﺑﺮاي اﯾﻦ ﮐﺎر در ﭘﺎﻧﻞ Solution Explorerﭘﺮوژه Setupرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ و ﻣﻄﺎﺑﻖ ﺷﮑﻞ 24ﻣﻘﺎدﯾﺮ
دﻟﺨﻮاه را وارد ﮐﻨﯿﺪ.
20
ﺗﺎ اﯾﻦ ﻣﺮﺣﻠﻪ ،در واﻗﻊ Setupﭘﺮوژه ﻣﺎ اﯾﺠﺎد ﺷﺪه اﺳﺖ و ﮐﺎﻓﯿﺴﺖ ﺑﻪ ﻣﺴﯿﺮ ﭘﺮوژه < ﭘﻮﺷﻪ < Setupﭘﻮﺷﻪ Debugﺑﺮوﯾﻢ و دو ﻓﺎﯾﻞ Setup
اﯾﺠﺎد ﺷﺪه را ﺑﻪ ﺳﯿﺴﺘﻤﻬﺎﯾﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﺑﺮﻧﺎﻣﻪ را در آﻧﻬﺎ ﻧﺼﺐ ﮐﻨﯿﻢ ،ﺑﺒﺮﯾﻢ و Setup.exeرا اﺟﺮا ﮐﻨﯿﻢ .اﻣﺎ ﭘﺮوژه ﻣﺎ ﺑﺮاي اﺟﺮا ﻧﯿﺎزﻣﻨﺪ
.Net Framework 3.5و ﻫﻤﭽﻨﯿﻦ SQLExpressاﺳﺖ .ﮔﺮﭼﻪ در وﯾﻨﺪوزﻫﺎي Vistaو Windows7ﻣﺤﯿﻂ .NETﺑﺎ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻋﺮﺿﻪ
ﻣﯽ ﺷﻮد .اﻣﺎ در وﯾﻨﺪوز XPﻻزم اﺳﺖ اﺑﺘﺪا .NET Framework 3.5ﻧﺼﺐ ﺷﻮد Setup .وﯾﮋوال اﺳﺘﻮدﯾﻮ ﻗﺎدر اﺳﺖ ﻗﺒﻞ از ﻧﺼﺐ ﺑﺮﻧﺎﻣﻪ ،از ﻧﺼﺐ
ﺑﻮدن ﭘﯿﺶ ﻧﯿﺎزﻫﺎي آن روي ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ اﻃﻤﯿﻨﺎن ﺣﺎﺻﻞ ﮐﻨﺪ و ﺳﭙﺲ ﻧﺴﺒﺖ ﺑﻪ ﻧﺼﺐ ﺑﺮﻧﺎﻣﻪ ،اﻗﺪام ﮐﻨﺪ .در اﯾﻦ ﻣﺮﺣﻠﻪ ،ﭘﯿﺶ ﻧﯿﺎزﻫﺎي ﻧﺼﺐ ﺑﺮﻧﺎﻣﻪ
را ﺑﻪ ﭘﺮوژه Setupاﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ ﺗﺎ در ﺻﻮرت ﻧﯿﺎز ،آﻧﻬﺎ ﻧﯿﺰ ﻧﺼﺐ ﺷﻮﻧﺪ.
21
روي ﭘﺮوژه Setupدر Solution Explorerﮐﻠﯿﮏ راﺳﺖ ﮐﻨﯿﺪ و Propertiesرا اﻧﺘﺨﺎب ﮐﻨﯿﺪ ﺗﺎ ﭘﻨﺠﺮه Setup Property Pagesﺑﺎز ﺷﻮد.
)ﺷﮑﻞ (25ﺳﭙﺲ دﮐﻤﻪ … Prerequisitesرا ﺑﺰﻧﯿﺪ
ﺷﮑﻞ - 26اﻧﺘﺨﺎب ﭘﯿﺶ ﻧﯿﺎزﻫﺎي ﻧﺼﺐ ﺑﺮﻧﺎﻣﻪ و اﺿﺎﻓﻪ ﮐﺮدن آﻧﻬﺎ ﺑﻪ ﭘﻮﺷﻪ Setup
22
اﻧﺘﺨﺎب ﮔﺰﯾﻨﻪ Download prerequisites from the same location as my applicationﺑﺎﻋﺚ ﮐﭙﯽ ﺷﺪن ﭘﯿﺶ ﻧﯿﺎزﻫﺎ ﺑﻪ ﭘﻮﺷﻪ
Setupﻣﯽ ﺷﻮد ﮐﻪ ﺣﺠﻢ ﭘﺮوژه ﺷﻤﺎ را ﺑﺎﻻ ﻣﯽ ﺑﺮد .اﻣﺎ Setupﻫﻤﯿﺸﻪ ﮐﺎر ﺧﻮاﻫﺪ ﮐﺮد!
ﺣﺎل ﭘﺮوژه Setupرا Buildﮐﻨﯿﺪ و ﺑﻪ ﻣﺴﯿﺮ آن ﺑﺮوﯾﺪ .ﮐﻞ ﻣﺤﺘﻮﯾﺎت ﭘﻮﺷﻪ Debugرا ﺑﻪ ﺳﯿﺴﺘﻢ ﻣﻘﺼﺪ ﺑﺒﺮﯾﺪ و ﻓﺎﯾﻞ Setup.exeرا ﺑﺎ ﺧﯿﺎل
راﺣﺖ اﺟﺮا ﮐﻨﯿﺪ!