0% found this document useful (0 votes)
36 views

Asp Net ch08 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views

Asp Net ch08 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻓﺼﻞ ﻫﺸﺘﻢ ‪:‬‬


‫ﻃﺮﻳﻘﻪ ﺩﺳﺘﻴﺎﺑﯽ ﻭ ﮐﺎﺭ ﺑﺎ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ‪ - ASP.NET‬ﻗﺴﻤﺖ ﺍﻭﻝ‬

‫ﻣﻘﺪﻣﻪ ‪:‬‬

‫‪ VS.NET‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﺍﺑﺰﺍﺭﻫﺎ ﻭ ﻓﻀﺎﻫﺎﻱ ﻧﺎﻡ ﻛﻪ ﺑﻪ ﺁﻧﻬﺎ ‪ ADO.NET‬ﺍﻃﻼﻕ ﻣـﻲ ﺷـﻮﺩ‬
‫ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﺩﺳﺘﺮﺳﻲ ﺩﺍﺭﺩ‪ .‬ﻃﺮﻳﻘﻪ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ‪ ADO.NET‬ﺗﻘﺮﻳﺒﺎ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﻨﺒـﻊ ﺩﺍﺩﻩ ﺍﺳـﺖ ﻭ‬
‫ﭘﺲ ﺍﺯ ﺍﻳﻨﻜﻪ ‪ Connection‬ﻭ ﺍﺭﺗﺒﺎﻁ ﺍﻳﺠﺎﺩ ﺷﺪ ﺟﺪﺍﻱ ﺍﺯ ﻧﻮﻉ ﺩﻳﺘﺎﺑﻴﺲ ‪ ،‬ﻃﺮﺯ ﻛﺎﺭ ﻭ ﺭﻓﺘﺎﺭ ﺑﺎ ﺁﻧﻬـﺎ ﺑﻮﺳـﻴﻠﻪ ﻱ‬
‫ﻳﻚ ﺳﺮﻱ ﺍﺯ ﺍﺷﻴﺎﺀ ‪ ،‬ﺧﻮﺍﺹ ﻭ ﺭﻭﺵ ﻫﺎﻱ ﻣﻮﺟﻮﺩ ﻛﻪ ﺑﺮﺍﻱ ﺗﻤﺎﻡ ﺁﻧﻬﺎ ﻳﻜﺴﺎﻥ ﺍﺳﺖ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﺩ‪.‬‬
‫ﺩﺭ ﻃﻲ ﺍﻳﻦ ﻓﺼﻞ ﻭ ﻓﺼﻮﻝ ﺁﺗﻲ ﻧﺤﻮﻩ ﻱ ﺍﺗﺼﺎﻝ ﻭ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺎﻧﻚ ﻫﺎﻱ ﺍﻃﻼﻋﺎﺗﻲ ﺑﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺍﺑﺰﺍﺭﻫـﺎﻱ‬
‫ﺟﺪﻳﺪ ﻓﺮﺍﻫﻢ ﺷﺪﻩ ﺭﺍ ﺧﻮﺍﻫﻴﻢ ﺁﻣﻮﺧﺖ‪.‬‬

‫ﺩﺭﻙ ﭘﺎﻳﻪ ﺍﻱ ﺍﺯ ‪: ADO.NET‬‬

‫ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ‪ ADO.NET‬ﺳﻪ ﻻﻳﻪ ﻭﺟﻮﺩ ﺩﺍﺭﺩ‪:‬‬

‫• ﻣﻜﺎﻥ ﻓﻴﺰﻳﻜﻲ ﻧﮕﻬﺪﺍﺭﻱ ﺩﺍﺩﻩ ﻫﺎ ‪ :‬ﻣﻲ ﺗﻮﺍﻧﺪ ﻳﻚ ﺩﻳﺘﺎﺑﻴﺲ ‪ ، OLE‬ﺩﻳﺘﺎﺑﻴﺲ ‪ SQL‬ﻭ ﻳﺎ ﻳﻚ ﻓﺎﻳﻞ ‪XML‬‬
‫ﺑﺎﺷﺪ ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪1‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫• ﻓﺮﺍﻫﻢ ﻛﻨﻨﺪﻩ ﻱ ﺩﺍﺩﻩ ‪ :‬ﺍﻳﻦ ﻣﺮﺣﻠﻪ ﺷﺎﻣﻞ ﺷﻲﺀ ‪ Connection‬ﻭ ﺍﺷﻴﺎﺀ ‪ Command‬ﺍﺳـﺖ ﻛـﻪ ﻧﻤـﺎﻳﺶ‬
‫ﺩﻫﻨﺪﻩ ﻱ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﺍﻱ ﺩﺍﺩﻩ ﻫﺎ ﻫﺴﺘﻨﺪ‪.‬‬
‫• ‪ : Data Set‬ﻧﻤﺎﻳﺶ ﺩﻫﻨﺪﻩ ﻱ ﺩﺭﻭﻥ ﺣﺎﻓﻈﻪ ﺍﻱ ﺟﺪﺍﻭﻝ ﻭ ﺍﺭﺗﺒﺎﻃﺎﺕ ﺑﻴﻦ ﺁﻧﻬﺎ ﺍﺳﺖ‪ .‬ﭘﺲ ﺍﺯ ﺍﻳﻨﻜﻪ ‪Data‬‬
‫‪ Set‬ﺍﻳﺠﺎﺩ ﺷﺪ ﺍﻳﻨﻜﻪ ﺍﺯ ﻛﺠﺎ ﺁﻣﺪﻩ ﺍﺳﺖ ﻭ ﻳﺎ ﻛﺠﺎ ﺫﺧﻴﺮﻩ ﮔﺸﺘﻪ ﺍﺳﺖ ﺍﻫﻤﻴﺖ ﻧﺪﺍﺭﺩ‪ .‬ﺑﻪ ﺍﻳﻦ ﻧﻮﻉ ﻣﻌﻤﺎﺭﻱ‬
‫‪ Disconnected‬ﻫﻢ ﻣﻲ ﮔﻮﻳﻨﺪ ﺯﻳﺮﺍ ‪ Data Set‬ﻣﺴﺘﻘﻞ ﺍﺯ ﺫﺧﻴﺮﻩ ﺩﺍﺩﻩ ﻫﺎ ﺍﺳﺖ ‪.‬‬

‫ﺷﻜﻞ ‪ -١‬ﻣﺪﻝ ﺷﻲﺀﺍﻳﻲ ‪ ADO.NET‬ﺭﺍ ﺩﺭ ﻋﻤﻞ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ‪.‬‬

‫‪Connection‬‬
‫‪Object‬‬

‫‪Data store‬‬
‫)‪(OLE DB, SQL, DB, XML‬‬
‫‪DataAdapter‬‬ ‫‪DataSet‬‬
‫‪Object‬‬ ‫‪Object‬‬

‫ﺷﻜﻞ ‪ -١‬ﺍﺷﻴﺎﺀ ‪ Connection‬ﻭ ‪ Command‬ﺩﺭ ‪. ADO.NET‬‬

‫ﺩﻭ ﻧﻮﻉ ﺍﺗﺼﺎﻝ ﺩﺍﺩﻩ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﺩﺭ ‪ ADO.NET‬ﻭﺟﻮﺩ ﺩﺍﺭﺩ ‪:‬‬

‫§ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ OleDbConnection‬ﺑﺮﺍﻱ ﺍﺗﺼﺎﻝ ﺑﻪ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﻣﺤﻠﻲ‪ .‬ﻛﺎﻧﻜﺸﻦ ﺍﺯ ﻧﻮﻉ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ‪Ole‬‬
‫ﺍﺯ ﺷﻲﺀ ‪ OleDataAdaptor‬ﺑﺮﺍﻱ ﺍﻧﺠﺎﻡ ﺩﺳﺘﻮﺭﺍﺕ ﻭ ﺑﺎﺯﮔﺸﺖ ﺩﺍﺩﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﺷﻮﺩ‪.‬‬
‫§ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ SqlDbConnection‬ﺑﺮﺍﻱ ﺍﺗﺼﺎﻝ ﺑﻪ ﻳﻚ ﺩﻳﺘﺎﺑﻴﺲ ﺑﺮ ﺭﻭﻱ ﺳﺮﻭﺭ‪.‬‬

‫‪ ADO.NET‬ﺧﻮﺍﺹ ‪ ،‬ﺍﺷﻴﺎﺀ ﻭ ﻣﺘﺪﺵ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺳﻪ ﻓﻀﺎﻱ ﻧﺎﻡ ﻛﻪ ﺩﺭ ﺟﺪﻭﻝ ‪ ١‬ﺑﻴﺎﻥ ﺷـﺪﻩ ﺍﻧـﺪ‪ ،‬ﺍﺭﺍﺋـﻪ‬
‫ﻣﻲ ﺩﻫﺪ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪2‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺟﺪﻭﻝ ‪ -١‬ﻓﻀﺎﻫﺎﻱ ﻧﺎﻡ ‪: ADO.NET‬‬

‫ﻣﻮﺍﺭﺩﻱ ﺭﺍ ﻛﻪ ﻣﻬﻴﺎ ﻣﻲ ﻛﻨﺪ‬ ‫ﻓﻀﺎﻱ ﻧﺎﻡ‬


‫ﻛﻼﺱ ﻫﺎ‪ ،‬ﻧﻮﻉ ﻫﺎ ﻭ ﺳﺮﻭﻳﺲ ﻫﺎ ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﻭ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ‪ Data Sets‬ﻭ‬
‫‪System.Data‬‬
‫ﺍﺷﻴﺎﺀ ﻣﺸﺘﻖ ﺷﺪﻩ ﺍﺯ ﺁﻥ‬
‫ﻧﻮﻉ ﻫﺎ ﻭ ﻛﻼﺱ ﻫﺎﻳﻲ ﺭﺍ ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﻫﺎﻱ ‪SQL-Server‬‬ ‫‪System.Data.SqlClient‬‬
‫ﻧﻮﻉ ﻫﺎ ﻭ ﻛﻼﺱ ﻫﺎ ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ‪OLE‬‬ ‫‪System.Data.OleDb‬‬

‫ﺑﺪﻳﻬﻲ ﺍﺳﺖ ﻛﻪ ﻣﻄﺎﺑﻖ ﺟﺪﻭﻝ ﻓﻮﻕ ﻫﻨﮕﺎﻣﻴﻜﻪ ﻣﻲ ﺧﻮﺍﻫﻴﺪ ﺍﺯ ﺍﻳﻦ ﻓﻀﺎﻫﺎﻱ ﻧﺎﻡ ﺍﺳـﺘﻔﺎﺩﻩ ﻛﻨﻴـﺪ ﺑﺎﻳـﺪ ﺁﻧﻬـﺎ ﺭﺍ ﺑـﻪ‬
‫ﺑﺮﻧﺎﻣﻪ ﺧﻮﺩ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ‪ Import‬ﻛﻨﻴﺪ ‪:‬‬

‫;‪using System.Data‬‬
‫ﺑﺮﺍﻱ ﻛﺎﻧﻜﺸﻦ ﻫﺎﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺍﺱ ﻛﻴﻮ ﺍﻝ ﺳﺮﻭﺭ ‪//‬‬
‫;‪using System.Data.SqlClient‬‬
‫ﺑﺮﺍﻱ ﻛﺎﻧﻜﺸﻦ ﻫﺎﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ‪// OLE DB‬‬
‫;‪using System.Data.OleDb‬‬

‫ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻳﻚ ﺩﻳﺘﺎﺑﻴﺲ ﺑﻮﺳﻴﻠﻪ ﻱ ‪ ، ADO.NET‬ﺍﻳﻦ ﻣﺮﺍﺣﻞ ﺭﺍ ﻃﻲ ﻛﻨﻴﺪ ‪:‬‬

‫‪ -١‬ﺍﻳﺠﺎﺩ ﻳﻚ ﻛﺎﻧﻜﺸﻦ ﺑﻪ ﻳﻚ ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻲﺀ ﻛﺎﻧﻜﺸﻦ‪.‬‬


‫‪ -٢‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻳﻚ ﺩﺳﺘﻮﺭ ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﻳﻚ ‪ DataSet‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻲﺀ ‪. Adapter‬‬
‫‪ -٣‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻲﺀ ‪ DataSet‬ﺩﺭ ﻛﺪ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻫﺎ ﻳﺎ ﺗﻐﻴﻴﺮ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ﺩﻳﺘﺎﺑﻴﺲ‪.‬‬
‫‪ -٤‬ﺍﺟﺮﺍﻱ ﺩﺳﺘﻮﺭﺍﺕ ﺑﺮﺍﻱ ﺑﻪ ﺭﻭﺯ ﺭﺳﺎﻧﻲ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺍﺯ ‪ DataSet‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻲﺀ ‪. Adapter‬‬
‫‪ -٥‬ﺑﺴﺘﻦ ﻛﺎﻧﻜﺸﻦ ‪ -‬ﺍﮔﺮ ﺷﻤﺎ ﺑﻪ ﺻﻮﺭﺕ ﺻﺮﻳﺢ ﺩﺭ ﻣﺮﺣﻠﻪ ﻱ ‪ ٢‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘـﺪ ‪ Open‬ﺁﻧـﺮﺍ ﮔﺸـﻮﺩﻩ‬
‫ﺍﻳﺪ‪ .‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﺳﺘﻮﺭﺍﺕ ﺑﺪﻭﻥ ﺍﺟﺮﺍﻱ ﺩﺳﺘﻮﺭ ‪ Open‬ﺩﺭ ﺍﺑﺘﺪﺍ ﺑﻪ ﺻﻮﺭﺕ ﺿﻤﻨﻲ ﺳﺒﺐ ﺑـﺎﺯ ﻭ ﺑﺴـﺘﻪ‬
‫ﺷﺪﻥ ﻫﺮ ﻛﺎﻧﻜﺸﻦ ﺑﺎ ﻫﺮ ﺩﺭ ﺧﻮﺍﺳﺖ ﻣﻲ ﺷﻮﺩ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪3‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺷﻜﻞ ‪ -٢‬ﻣﺪﻝ ﺷﻲﺀﺍﻳﻲ ‪ ADO.NET‬ﺍﺯ ﺩﻳﺪﮔﺎﻫﻲ ﺩﻳﮕﺮ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪4‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺗﻤﺎﻡ ﺍﻳﻦ ﻣﺮﺍﺣﻞ ﺑﻪ ﺻﻮﺭﺕ ﻣﻔﺼﻠﻲ ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﺧﻮﺍﻫﻨﺪ ﺷﺪ‪ .‬ﻋﻤﻮﻣﺎ ﺩﺭ ﻣﺤﺼﻮﻻﺕ ﻣﺎﻳﻜﺮﻭﺳﺎﻓﺖ‬
‫ﺩﻭ ﺭﻭﺵ ﺑﺮﺍﻱ ﻛﺎﺭ ﺑﺎ ﺩﻳﺘﺎﺑﻴﺲ ﻭﺟـﻮﺩ ﺩﺍﺭﺩ ‪ -١ :‬ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺍﺑﺰﺍﺭﻫـﺎﻱ ﻭﻳـﮋﻭﺍﻝ ﺩﺭ ﺯﻣـﺎﻥ ﻃﺮﺍﺣـﻲ ‪ -٢ .‬ﻛـﺪ‬
‫ﻧﻮﻳﺴﻲ ﻣﺴﺘﻘﻴﻢ ‪.‬‬
‫ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺍﻳﻨﻜﻪ ﺭﻭﺵ ﺍﻭﻝ ﻓﻘﻂ ﺑﺮﺍﻱ ﺗﺎﺯﻩ ﻛﺎﺭﺍﻥ ﺟﺬﺍﺏ ﻭ ﻣﻔﻴﺪ ﻣﻲ ﺑﺎﺷﺪ ﻭ ﻫﻴﭽﮕﻮﻧﻪ ﺩﻳﺪ ﻋﻤﻴﻘﻲ ﺭﺍ ﺍﺯ ﻛـﺎﺭ‬
‫ﺍﺭﺍﺋﻪ ﻧﺪﺍﺩﻩ ﻭ ﺑﺎ ﻛﻮﭼﻜﺘﺮﻳﻦ ﺧﻄﺎﻳﻲ ﺩﺭ ﺑﺮﻧﺎﻣﻪ ﺭﻓﻊ ﺁﻥ ﻭﺍﻗﻌﺎ ﻣﺸﻜﻞ ﻣﻲ ﺑﺎﺷﺪ ﺍﺯ ﺁﻥ ﺍﺳﺘﻔﺎﺩﻩ ﻧﺨﻮﺍﻫﺪ ﺷﺪ‪ .‬ﺑﺮﺍﻱ‬
‫ﻣﺜﺎﻝ ﺩﺭ ﺭﻭﺵ ﺍﻭﻝ ﺷﻤﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﺑﺰﺍﺭﻫﺎﻱ ﻭﻳﮋﻭﺍﻝ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﻳﻚ ‪ ConnectionString‬ﺭﺍ ﺑﺮﺍﻱ ﺍﺗﺼﺎﻝ‬
‫ﺑﻪ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺍﻳﺠﺎﺩ ﻛﻨﻴﺪ ﻭﻟﻲ ﺑﺪﻳﻬﻲ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﻛﺪﻧﻮﻳﺴﻲ ﺍﻧﻌﻄﺎﻑ ﭘﺬﻳﺮﻱ ﻭ ﺗﻮﺍﻧﺎﻳﻲ ﺑﻴﺸﺘﺮﻱ ﻭﺟـﻮﺩ ﺧﻮﺍﻫـﺪ‬
‫ﺩﺍﺷﺖ ﻭ ﻭﺍﻗﻌﺎ ﻛﺴﻲ ﻣﺒﺤﺚ ﺭﺍ ﺩﺭﺳﺖ ﺩﺭﻙ ﻛﺮﺩﻩ ﻛﻪ ﺑﺘﻮﺍﻧﺪ ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﺠﻤﻮﻋﻪ ﻛﺪ ﺑﻨﻮﻳﺴﺪ‪.‬‬

‫ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻫﺎﻱ ‪: SQL-Server‬‬

‫ﻛﻨﺘﺮﻝ ‪ DataGrid‬ﺑﺮﺍﻱ ﻛﺎﺭ ﺑﺎ ﺩﺍﺩﻩ ﻫﺎ ﺑﺴﻴﺎﺭ ﺍﻧﻌﻄﺎﻑ ﭘﺬﻳﺮ ﻣـﻲ ﺑﺎﺷـﺪ ‪ .‬ﺁﻥ ﺍﺯ ﻭﻳﮋﮔـﻲ ﻫـﺎﻱ ﭘﻴﺸـﺮﻓﺘﻪ ﺍﻱ‬
‫ﻣﺎﻧﻨﺪ ‪ ، Paging‬ﻭﻳﺮﺍﻳﺶ ﺩﺍﺩﻩ ﻫﺎ ﻭ ﻣﺮﺗﺐ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﺑﻬﺮﻩ ﻣﻲ ﺑﺮﺩ ﻛﻪ ﻣﺒﺎﺣـﺚ ﻣﻔﺼـﻞ ﺗـﺮ ﺁﻥ ﻭ ﻫﻤﭽﻨـﻴﻦ‬
‫ﺳﺎﻳﺮ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺍﻳﻨﮕﻮﻧﻪ ﺩﺭ ﻓﺼﻠﻲ ﺟﺪﺍﮔﺎﻧﻪ ﺍﺭﺍﺋﻪ ﺧﻮﺍﻫﺪ ﮔﺮﺩﻳﺪ‪ .‬ﺩﺭ ﺍﻳﻦ ﻓﺼﻞ ﺑﺮﺍﻱ ﻣﻌﺮﻓـﻲ ﻣﻔـﺎﻫﻴﻢ ﻛـﺎﺭ ﺑـﺎ‬
‫ﺩﺍﺩﻩ ﻫﺎ ﺻﺮﻓﺎ ﺍﺯ ﺁﻥ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻫﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺧﻮﺍﻫﻴﻢ ﻛﺮﺩ‪ .‬ﺑﺮﺍﻱ ﻧﻤـﺎﻳﺶ ﺩﺍﺩﻩ ﻫـﺎ ﺣـﺪﺍﻗﻞ ﺍﺯ ﺳـﻪ ﺷـﻲﺀ‬
‫ﺍﺳــــــﺘﻔﺎﺩﻩ ﻣــــــﻲ ﺷــــــﻮﺩ ‪ SQLDataAdapter ، SQLConnection :‬ﻭ ‪ . SQLDataSet‬ﺷــــــﻲﺀ‬
‫‪ SQLConnection‬ﺩﺭ ﻓﻀﺎﻱ ﻧﺎﻡ ‪ System.Data.SqlClient‬ﺑﺮﺍﻱ ﺧﻠـﻖ ﻳـﻚ ﻛﺎﻧﻜﺸـﻦ ﺍﺯ ﺳـﺮﻭﺭ ﻭﺏ ﺑـﻪ‬
‫ﺑﺎﻧﻚ ﺩﺍﺩﻩ ﻱ ‪ SQL-Server‬ﺑﻜﺎﺭ ﺑﺮﺩﻩ ﻣﻲ ﺷﻮﺩ‪ .‬ﺷﻲﺀ ‪ SQLDataAdapter‬ﻧﻴﺰ ﺩﺭ ﻫﻤﻴﻦ ﻓﻀﺎﻱ ﻧـﺎﻡ ﻗـﺮﺍﺭ‬
‫ﺩﺍﺷﺘﻪ ﻭ ﺑﻴﺎﻧﮕﺮ ﻛﺎﻧﻜﺸﻦ ﻭ ﺩﺳﺘﻮﺭﺍﺗﻲ ﺍﺳﺖ ﻛـﻪ ﺭﻭﻱ ﺩﻳﺘـﺎﺑﻴﺲ ﺍﺟـﺮﺍ ﻣـﻲ ﺷـﻮﻧﺪ‪ .‬ﺷـﻲﺀ ‪ SQLDataSet‬ﺩﺭ‬
‫ﻓﻀﺎﻱ ﻧﺎﻡ ‪ System.Data‬ﻣﻮﺟﻮﺩ ﺑﻮﺩﻩ ﻭ ‪ SQLDataAdapter‬ﺭﺍ ﺑﻜـﺎﺭ ﻣـﻲ ﮔﻴـﺮﺩ ﺗـﺎ ﺩﺍﺩﻩ ﻫـﺎ ﺭﺍ ﺍﺯ ﻣﻨﺒـﻊ‬
‫ﺩﺍﺩﻩ ﺍﻱ ‪ SQL-Server‬ﺑﺪﺳﺖ ﺁﻭﺭﺩ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪5‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻣﺜﺎﻝ ‪١‬‬

‫ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺍﺯ ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ ﻫﻤﺮﺍﻩ ‪ SQL-Server‬ﺑﻪ ﻧﺎﻡ ‪ Pubs‬ﺭﻛﻮﺭﺩﻫﺎﻱ ﺟﺪﻭﻝ ‪ Titles‬ﺭﺍ ﺑﺨـﻮﺍﻧﻴﻢ ﻭ‬
‫ﺩﺭ ﻳﻚ ‪ DataGrid‬ﻧﻤﺎﻳﺶ ﺩﻫﻴﻢ ‪.‬‬

‫ﺍﺑﺘــﺪﺍ ﻓﻀــﺎﻫﺎﻱ ﻧــﺎﻡ ‪ System.Data‬ﻭ ‪ System.Data.SqlClient‬ﺭﺍ ﻭﺍﺭﺩ ﻛﻨﻴــﺪ‪ .‬ﻳــﻚ ‪ DataGrid‬ﺭﻭﻱ‬


‫ﺻﻔﺤﻪ ﻗﺮﺍﺭ ﺩﻫﻴﺪ‪ .‬ﺳﭙﺲ ﺑﺮ ﺭﻭﻱ ﺻﻔﺤﻪ ﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻧﻤﻮﺩﻩ ﻭ ﻛﺪ ﺯﻳﺮ ﺭﺍ ﺩﺍﺧﻞ ﺁﻥ ﺑﻨﻮﻳﺴﻴﺪ‪:‬‬
‫ﻳﻚ ‪ SqlConnection‬ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﺑﺎﻧﻚ ﺍﻃﻼﻋـﺎﺗﻲ ﺑـﺎﺯ ﻣـﻲ ﻛﻨـﻴﻢ ‪ .‬ﺩﺭ ‪ ConnectionString‬ﺁﻥ‬
‫ﻫﻤﺎﻧﻄﻮﺭ ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻲ ﻛﻨﻴﺪ ‪ ،‬ﻧﺎﻡ ﺳﺮﻭﺭ ‪ ID ،‬ﻭ ‪ Pass‬ﻛﺎﺭﺑﺮ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺭﻭﻱ ﺁﻥ ﻭ ﻧﺎﻡ ﺩﻳﺘﺎﺑﻴﺴﻲ ﺭﺍ ﻛـﻪ‬
‫ﺑﺮﻧﺎﻣﻪ ﻣﻲ ﺧﻮﺍﻫﺪ ﺑﻪ ﺁﻥ ﻣﺘﺼﻞ ﺷﻮﺩ ﺭﺍ ﻣﺸﺨﺺ ﻣﻲ ﻛﻨﻴﻢ‪.‬‬

‫‪SqlConnection sqlconnectionPubs = new‬‬


‫;)"‪SqlConnection("server=(local);uid=sa;pwd=;database=pubs‬‬

‫ﺳﭙﺲ ﺑﺎ ﺍﻳﺠﺎﺩ ﻳﻚ ‪ SQLDataAdapter‬ﻭ ﭘﺎﺱ ﻛﺮﺩﻥ ﻳﻚ ﻋﺒﺎﺭﺕ ‪ SQL‬ﺑـﻪ ﺁﻥ ‪ ،‬ﺑـﺮﺍﻱ ﺩﺭﻳﺎﻓـﺖ ﺩﺍﺩﻩ ﻫـﺎ‬
‫ﺍﻗﺪﺍﻡ ﻣﻲ ﻧﻤﺎﻳﻴﻢ ﻭ ﺩﺭ ﺍﺩﺍﻣﻪ ﻳﻚ ﺷﻲﺀ ‪ DataSet‬ﺍﻳﺠﺎﺩ ﻣﻲ ﻛﻨﻴﻢ ‪:‬‬

‫‪SqlDataAdapter sqldataadapterTitles = new‬‬


‫(‪SqlDataAdapter‬‬
‫‪"select title, notes, price from titles where type='business'",‬‬
‫;)‪sqlconnectionPubs‬‬

‫;)(‪DataSet datasetTitles = new DataSet‬‬


‫;)"‪sqldataadapterTitles.Fill(datasetTitles, "titles‬‬

‫‪ SQLDataAdapter‬ﺭﺍ ﺍﺿﺎﻓﻪ ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ ‪ DataSet‬ﺭﺍ ﭘﻴﻤﺎﻳﺶ ﻛﻨﺪ‪ DataSource .‬ﻣﺮﺑﻮﻁ ﺑﻪ ﺩﻳﺘﺎﮔﺮﻳﺪ ﺭﺍ‬
‫ﺑﻪ ‪ DataSet‬ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺗﻨﻈﻴﻢ ﻣﻲ ﻛﻨﻴﻢ ﻭ ﺩﺭ ﻧﻬﺎﻳﺖ ﺩﻳﺘﺎﮔﺮﻳﺪ ﺭﺍ ﺑﻪ ﺩﻳﺘﺎﺳﺖ ﻣﺘﺼﻞ ﻣﻲ ﻧﻤﺎﻳﻴﻢ‪.‬‬

‫;‪DataGrid1.DataSource=datasetTitles.Tables["titles"].DefaultView‬‬
‫;)(‪DataGrid1.DataBind‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪6‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

: SQL-Server ‫ﺍﺿﺎﻓﻪ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﺑﻪ ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ‬

‫ﺩﺭ‬ Insert ‫ ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ‬SQL ‫ﭘﺲ ﺍﺯ ﻣﻄﺎﻟﻌﻪ ﻱ ﻓﺼﻮﻝ ﭘﻴﺸﻴﻦ ﺩﺭ ﻣﻮﺭﺩ ﺑﻜﺎﺭ ﮔﻴﺮﻱ ﺩﺳﺘﻮﺭﺍﺕ‬
. ‫ﺍﻳﻨﺠﺎ ﺑﻪ ﺳﺎﺩﮔﻲ ﺻﻮﺭﺕ ﺧﻮﺍﻫﺪ ﮔﺮﻓﺖ‬
‫ ﺭﺍ ﺑـﺮﺍﻱ ﺍﺟـﺮﺍﻱ‬SQL ‫ ﻣـﻲ ﺗـﻮﺍﻥ ﺩﺳـﺘﻮﺭ‬Command ‫ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻲﺀ‬، ‫ﻫﻨﮕﺎﻣﻴﻜﻪ ﻛﺎﻧﻜﺸﻦ ﺍﻳﺠﺎﺩ ﺷﺪ‬
.‫ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﺩﺍﺩ ﻭ ﻧﻬﺎﻳﺘﺎ ﻛﺎﻧﻜﺸﻦ ﺑﺎﻳﺪ ﺑﺴﺘﻪ ﺷﻮﺩ‬Insert

: ٢ ‫ﻣﺜﺎﻝ‬

‫ ﻣﺮﺑﻮﻁ ﺑﻪ ﺛﺒﺖ ﻧﺎﻡ ﻳﻚ‬tblUsers ‫ ﻭ ﺟﺪﻭﻝ‬AspNetForum ‫ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ ﻣﺮﺑﻮﻁ ﺑﻪ ﻓﻮﺭﻭﻡ ﺩﻭﺭﻩ ﺑﻪ ﻧﺎﻡ‬
: ‫ﻛﺎﺭﺑﺮ ﺟﺪﻳﺪ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺍﻳﺠﺎﺩ ﻛﻨﻴﺪ‬
use AspNetForum

CREATE TABLE [dbo].[tblUsers] (


[user_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_type_id] [smallint] NULL ,
[user_name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[email] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[password] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[addr1] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[city] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[state] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[postalcode] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[country] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[phone] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[fax] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[signature] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
) ON [PRIMARY]
GO
: ‫ﺳﭙﺲ ﻓﺮﻡ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﻃﺮﺍﺣﻲ ﻛﻨﻴﺪ‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
([email protected]) ‫ ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ‬: ‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ‬
7 ASP.NET ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺷﻜﻞ ‪ -١‬ﺗﺼﻮﻳﺮ ﻣﺜﺎﻝ ﻳﻚ ﺩﺭ ﺣﺎﻟﺖ ﻃﺮﺍﺣﻲ ‪ .‬ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﻛﻨﺘﺮﻝ ‪ Table‬ﺩﺭ ﻗﺴﻤﺖ ‪ HTML Controls‬ﺑﺮﺍﻱ‬
‫ﻧﻈﻢ ﺑﺨﺸﻴﺪﻥ ﺑﻪ ﻣﺤﻞ ﻗﺮﺍﺭ ﮔﻴﺮﻱ ﻛﻨﺘﺮﻝ ﻫﺎ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ‪.‬‬

‫ﻧﺎﻡ ﻋﻨﺎﺻﺮ ﺁﻥ ﺭﺍ ﺑﺮﺍﻱ ﺩﺭﻙ ﻭ ﺳﺎﺩﻩ ﺳﺎﺯﻱ ﻛﺎﺭ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﻪ ﻧﺎﻣﻬﺎﻳﻲ ﻣﻔﻬـﻮﻡ ﺗﻐﻴﻴـﺮ ﺩﻫﻴـﺪ ﻭ ﺳـﭙﺲ‬
‫ﻛﻨﺘﺮﻝ ﻫﺎﻱ ‪ ReqiuredFieldValidator‬ﺭﺍ ﺑﺮﺍﻱ ﺳﻪ ﺁﻳﺘﻢ ﺍﻭﻝ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫ﺑﺮﺍﻱ ﺯﻳﺒﺎ ﺳﺎﺯﻱ ﺑﻴﺸﺘﺮ ﻣﻲ ﺗﻮﺍﻥ ﺭﻭﻱ ﻛﻨﺘﺮﻝ ‪ Table‬ﻛﻠﻴﻚ ﺭﺍﺳﺖ ﻛﺮﺩ ﻭ ﺳﭙﺲ ﺧﻮﺍﺹ ﺁﻧﺮﺍ ﺍﻧﺘﺨﺎﺏ ﻧﻤـﻮﺩ‬
‫ﻭ ﺳﺎﻳﺰ ﺣﺎﺷﻴﻪ )‪ (Border‬ﺁﻧﺮﺍ ﻣﺴﺎﻭﻱ ﺻﻔﺮ ﻗﺮﺍﺭ ﺩﺍﺩ ﺗﺎ ﺩﺭ ﺯﻣﺎﻥ ﺍﺟﺮﺍ ﻧﺎﻣﺮﺋﻲ ﺑﺎﺷﺪ‪.‬‬
‫ﻓﻴﻠﺪ ‪ user_id‬ﺑﻪ ﺻﻮﺭﺕ ‪ Auto Increment‬ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺍﺳﺖ ﭘﺲ ﺧﻮﺩ ‪ SQL-Server‬ﻛﺎﺭ ﺍﺿﺎﻓﻪ ﻛـﺮﺩﻥ‬
‫ﻭ ﻣﺪﻳﺮﻳﺖ ﺁﻧﺮﺍ ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﻛﺎﺭ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﺪ‪.‬‬
‫ﻓﻴﻠﺪ ‪ user_type_id‬ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﭘﻴﺶ ﻓﺮﺽ ﺻﻔﺮ ﻭﺍﺭﺩ ﻛﺮﺩﻩ ﻭ ﺩﺭ ﺍﺑﺘﺪﺍﻱ ﻭﺭﻭﺩ ﻫﻤﻪ ﺭﺍ ﻛﺎﺭﺑﺮ ﻣﻌﻤـﻮﻟﻲ ﺩﺭ‬
‫ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‪ .‬ﺩﺭ ﻗﺴﻤﺖ ﻣﺪﻳﺮﻳﺖ ﻓﻮﺭﻭﻡ ﻣﻲ ﺗﻮﺍﻥ ﺍﻳﻦ ﻋﺪﺩ ﺭﺍ ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺑﻪ ‪ ٢‬ﺑﺮﺍﻱ ﻣﺪﻳﺮ ﺳﺎﻳﺖ ﺗﻐﻴﻴﺮ ﺩﺍﺩ‪.‬‬
‫ﺍﻛﻨﻮﻥ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻛﺪ ﺯﻳﺮ ﻣﻲ ﺗﻮﺍﻥ ﺩﺍﺩﻩ ﻫﺎ ﺭﺍ ﺑـﻪ ﺁﻥ ﺍﺿـﺎﻓﻪ ﻛـﺮﺩ ﻭ ﺳـﭙﺲ ﺑـﺎ ﻳـﻚ ‪ DataGrid‬ﻟﻴﺴـﺖ‬
‫ﻛﺎﺭﺑﺮﻫﺎ ﺭﺍ ﻧﻤﺎﻳﺶ ﺩﺍﺩ‪ .‬ﻓﻌﻼ ﻳﻚ ﮔﺮﻳﺪ ﺳﺎﺩﻩ ﺩﺭ ﻛﻨﺎﺭ ﺍﻳﻦ ﻣﺠﻤﻮﻋﻪ ﺭﻭﻱ ﺻﻔﺤﻪ ﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﻛﺎﺭﻣﺎﻥ ﺍﺿـﺎﻓﻪ‬
‫ﻣﻲ ﻛﻨﻴﻢ ﻭ ﺩﺭ ﻫﻨﮕﺎﻡ ﺗﻜﻤﻴﻞ ﻧﻬﺎﻳﻲ ﺑﺮﻧﺎﻣﻪ ﺁﻧﺮﺍ ﺩﺭ ﻳﻚ ﺻﻔﺤﻪ ﻱ ﺩﻳﮕﺮ ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺑﻪ ﻧﺎﻡ ﻟﻴﺴﺖ ﻛﺎﺭﺑﺮﺍﻥ ﻧﻤﺎﻳﺶ‬
‫ﺧﻮﺍﻫﻴﻢ ﺩﺍﺩ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪8‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

: ‫ﺍﺑﺘﺪﺍ ﻓﻀﺎﻱ ﻧﺎﻡ ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻣﻠﺤﻖ ﻣﻲ ﺷﻮﺩ‬


using System.Data.SqlClient;

: ‫ ﺑﺎﺯ ﻣﻲ ﺷﻮﺩ‬Connection ‫ﻣﺎﻧﻨﺪ ﻣﻌﻤﻮﻝ ﻳﻚ‬


SqlConnection sqlconnectionForum = new
SqlConnection("server=(local);uid=sa;pwd=;database=AspNetForum");

‫ ﺩﺍﺩﻩ ﻫﺎﻳﻲ ﺭﺍ ﻛﻪ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺑﺎ ﺁﻧﻬﺎ ﻛﺎﺭ‬SQL ‫ ﺭﺍ ﺍﻳﺠﺎﺩ ﻭ ﺑﺎ ﻳﻚ ﻋﺒﺎﺭﺕ‬SQLDataAdapter ‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺷﻲﺀ‬
.‫ﻛﻨﻴﻢ ﺍﻧﺘﺨﺎﺏ ﻣﻲ ﻧﻤﺎﻳﻴﻢ‬
SqlDataAdapter sqldataadapterUsers = new
SqlDataAdapter("select * from tblUsers", sqlconnectionForum);

: ‫ ﻣﻲ ﺑﺎﺷﺪ ﺭﺍ ﺧﻠﻖ ﻣﻲ ﻛﻨﻴﻢ‬Insert ‫ﻳﻚ ﺭﺷﺘﻪ ﻛﻪ ﺑﻴﺎﻧﮕﺮ ﺩﺳﺘﻮﺭ‬

String insertCmd =
"INSERT INTO tblUsers(user_type_id, user_name, email,"+
"password, addr1, city, state, postalcode, country,"+
"phone,fax,signature) VALUES("+
"0,"+
txtName.Text.Trim() +","+
txtEmail.Text.Trim()+","+txtPassWord.Text.Trim()+","+
txtAddress.Text.Trim() +","+
txtCity.Text.Trim()+","+txtState.Text.Trim()+","+
txtPostalCode.Text.Trim() +","+
txtCountry.Text.Trim()+","+txtPhone.Text.Trim()+","+
txtFax.Text.Trim() +","+ txtSig.Text.Trim() + ")";

: ‫ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩ ﻗﺮﺍﺭ ﻣﻲ ﺩﻫﻴﻢ‬SQLCommand ‫ﺭﺷﺘﻪ ﻱ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺭﺍ ﺑﺮﺍﻱ ﺧﻠﻖ‬

SqlCommand sqlcommandUsers = new


SqlCommand(insertCmd, sqlconnectionForum);

.‫ ﻭ ﻣﻲ ﺑﻨﺪﻳﻢ‬Execute ، Open ‫ ﺭﺍ‬Command ‫ﻭ ﻋﺎﻗﺒﺖ ﺍﻳﻦ‬

sqlcommandUsers.Connection.Open();
sqlcommandUsers.ExecuteNonQuery();
sqlcommandUsers.Connection.Close();

: ‫ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻫﺎﻱ ﺁﻥ ﻫﻢ ﻣﻲ ﺗﻮﺍﻥ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﻋﻤﻞ ﻛﺮﺩ‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
([email protected]) ‫ ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ‬: ‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ‬
9 ASP.NET ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫;)(‪DataSet datasetUsers = new DataSet‬‬


‫;)"‪sqldataadapterUsers.Fill(datasetUsers, "tblUsers‬‬

‫;‪DataGrid1.DataSource=datasetUsers.Tables["tblUsers"].DefaultView‬‬
‫;)(‪DataGrid1.DataBind‬‬

‫ﺑﻪ ﺭﻭﺯ ﺭﺳﺎﻧﻲ ﺩﺍﺩﻩ ﻫﺎ ﻭ ﻭﻳﺮﺍﻳﺶ ﺁﻧﻬﺎ ‪:‬‬

‫ﺑﺎ ﺍﺟﺮﺍﻱ ﺩﺳﺘﻮﺭ ‪ SQL Update‬ﻛﻪ ﺩﺭ ﻓﺼﻮﻝ ﻗﺒﻠﻲ ﺩﺭ ﻣﻮﺭﺩ ﺁﻥ ﺗﻮﺿـﻴﺢ ﺩﺍﺩﻩ ﺷـﺪ ﻣـﻲ ﺗـﻮﺍﻥ ﺍﻳﻨﻜـﺎﺭ ﺭﺍ‬
‫ﺍﻧﺠﺎﻡ ﺩﺍﺩ‪.‬‬
‫ﭼﻮﻥ ﻧﺤﻮﻩ ﻱ ﻋﻤﻠﻴﺎﺕ ﺩﻗﻴﻘﺎ ﻫﻤﺎﻧﻨﺪ ﺑﻪ ﻋﻤﻠﻴﺎﺕ ‪ Insert‬ﺍﺳﺖ ﻣﻲ ﺗـﻮﺍﻥ ﺑـﻪ ﻣﺜـﺎﻝ ﺯﻳـﺮ ﺑـﺮﺍﻱ ﺗﻜﻤﻴـﻞ ﻣﺒﺤـﺚ‬
‫ﻣﺮﺍﺟﻌﻪ ﻛﺮﺩ ‪:‬‬

‫ﻣﺜﺎﻝ ‪٣‬‬

‫ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺩﺭ ﺩﻳﺘﺎﺑﻴﺲ ‪ ، Pubs‬ﻫﻨﮕﺎﻣﻴﻜﻪ ‪ Title_ID‬ﺩﺭ ﺟﺪﻭﻝ ‪ titles‬ﻣﺴﺎﻭﻱ ‪ BU9999‬ﺍﺳﺖ ﻗﻴﻤﺖ ﺁﻧﺮﺍ‬
‫ﺑﻪ ‪ 35.00‬ﺗﻐﻴﻴﺮ ﺩﻫﻴﻢ ﻭ ﺳﭙﺲ ﺣﺎﺻﻞ ﺭﺍ ﺩﺭ ﻳﻚ ﺩﻳﺘﺎﮔﺮﻳﺪ ﻧﻤﺎﻳﺶ ﺩﻫﻴﻢ‪.‬‬
‫ﺍﺑﺘﺪﺍ ﺑﺎﻳﺪ ﺍﺿﺎﻓﻪ ﻛﺮﺩﻥ ﻓﻀﺎﻱ ﻧﺎﻡ ﻻﺯﻡ ﺑﻪ ﭘﺮﻭﮊﻩ ﺻﻮﺭﺕ ﮔﻴﺮﺩ ‪:‬‬

‫;‪using System.Data.SqlClient‬‬

‫ﻳﻚ ﻛﺎﻧﻜﺸﻦ ﺭﺍ ﺑﻪ ﺩﻳﺘﺎ ﺑﻴﺲ ‪ Pubs‬ﺑﺮﻗﺮﺍﺭ ﻣﻲ ﻛﻨﻴﻢ‪:‬‬


‫‪SqlConnection sqlconnectionPubs =new‬‬
‫;)"‪SqlConnection("server=(local);uid=sa;pwd=;database=pubs‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪10‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺩﺭ ﺍﺩﺍﻣﻪ ﺷﻲﺀ ‪ SQLDataAdapter‬ﺭﺍ ﺍﻳﺠﺎﺩ ﻭ ﺑﺎ ﻳﻚ ﻋﺒﺎﺭﺕ ‪ SQL‬ﺩﺍﺩﻩ ﻫﺎﻳﻲ ﺭﺍ ﻛﻪ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺑﺎ ﺁﻧﻬﺎ ﻛﺎﺭ‬
‫ﻛﻨﻴﻢ ﺍﻧﺘﺨﺎﺏ ﻣﻲ ﻧﻤﺎﻳﻴﻢ‪.‬‬
‫= ‪SqlDataAdapter sqldataadapterTitles‬‬
‫‪new SqlDataAdapter("select title, notes,"+‬‬
‫;)‪"price from titles where type='business'", sqlconnectionPubs‬‬

‫ﻳﻚ ﺭﺷﺘﻪ ﻛﻪ ﺑﻴﺎﻧﮕﺮ ﺩﺳﺘﻮﺭ ‪ Insert‬ﻣﻲ ﺑﺎﺷـﺪ ﺭﺍ ﺧﻠـﻖ ﻣـﻲ ﻛﻨـﻴﻢ ﻭ ﺭﺷـﺘﻪ ﻱ ﺍﻳﺠـﺎﺩ ﺷـﺪﻩ ﺭﺍ ﺑـﺮﺍﻱ ﺧﻠـﻖ‬
‫‪ SQLCommand‬ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩ ﻗﺮﺍﺭ ﻣﻲ ﺩﻫﻴﻢ ‪:‬‬
‫= ‪String updateCmd‬‬
‫;"'‪"UPDATE titles SET price = 35.00 WHERE title_id = 'BU9999‬‬
‫= ‪SqlCommand sqlcommandTitles‬‬
‫;)‪new SqlCommand(updateCmd, sqlconnectionPubs‬‬

‫ﻭ ﻋﺎﻗﺒﺖ ﺍﻳﻦ ‪ Command‬ﺭﺍ ‪ Execute ، Open‬ﻭ ﻣﻲ ﺑﻨﺪﻳﻢ‪.‬‬


‫;)(‪sqlcommandTitles.Connection.Open‬‬
‫;)(‪sqlcommandTitles.ExecuteNonQuery‬‬
‫;)(‪sqlcommandTitles.Connection.Close‬‬

‫ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻫﺎﻱ ﺁﻥ ﻫﻢ ﻣﻲ ﺗﻮﺍﻥ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﻋﻤﻞ ﻛﺮﺩ ‪:‬‬
‫;)(‪DataSet datasetTitles = new DataSet‬‬
‫;)"‪sqldataadapterTitles.Fill(datasetTitles, "titles‬‬

‫;‪DataGrid1.DataSource=datasetTitles.Tables["titles"].DefaultView‬‬
‫;)(‪DataGrid1.DataBind‬‬

‫ﺣﺬﻑ ﺍﻃﻼﻋﺎﺕ ﺍﺯ ﺟﺪﻭﻝ ‪:‬‬

‫ﻣﻬﻤﺘﺮﻳﻦ ﻭ ﻣﻌﻤﻮﻟﺘﺮﻳﻦ ﺣﺎﻟﺖ ﺣﺬﻑ ﺍﻃﻼﻋﺎﺕ ﻣﻌﻤﻮﻻ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺪﻳﺮﻳﺖ ﺩﻳﺘﺎﺑﻴﺲ ﻣـﻲ ﺷـﻮﺩ ﻭ ﺑﻬﺘـﺮ ﺍﺳـﺖ‬
‫ﻛﺎﺭﺑﺮﺍﻥ ﺩﺳﺘﺮﺳﻲ ﺑﻪ ﻳﻚ ﭼﻨﻴﻦ ﺍﻣﻜﺎﻧﺎﺗﻲ ﺭﺍ ﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ ‪.‬‬
‫ﺭﻭﺍﻝ ﻛﺎﺭ ﺩﺭ ﺍﻳﻨﺠﺎ ﻧﻴﺰ ﻫﻤﺎﻧﻨﺪ ﺍﺟﺮﺍﻱ ﺳـﺎﻳﺮ ﺩﺳـﺘﻮﺭﺍﺕ ‪ SQL‬ﺫﻛـﺮ ﺷـﺪﻩ ﻣـﻲ ﺑﺎﺷـﺪ ﻭ ﺩﺭ ﺍﺑﺘـﺪﺍ ﺑـﺎ ﺷـﻲﺀ‬
‫‪ SQLConnection‬ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﻳﻚ ﺍﺭﺗﺒﺎﻁ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﺷﺮﻭﻉ ﻣﻲ ﻛﻨﻴﻢ‪ .‬ﭘـﺲ ﺍﺯ ﺍﻳﺠـﺎﺩ ﻛﺎﻧﻜﺸـﻦ ﻳـﻚ ﺷـﻲﺀ‬
‫‪ SqlCommand‬ﺍﻳﺠﺎﺩ ﻣﻲ ﺷﻮﺩ ﻭ ﻳﻚ ﻋﺒﺎﺭﺕ ‪ SQL‬ﻛﻪ ﺑﺎﻳﺪ ﺭﻭﻱ ﺩﻳﺘﺎﺑﻴﺲ ﺍﺟـﺮﺍ ﺷـﻮﺩ‪ .‬ﺩﺭ ﺍﺩﺍﻣـﻪ ‪ ،‬ﺩﺳـﺘﻮﺭ‬
‫ﺍﺟﺮﺍ ﺷﺪﻩ ﻭ ﻛﺎﻧﻜﺸﻦ ﺧﺎﺗﻤﻪ ﭘﻴﺪﺍ ﻣﻲ ﻛﻨﺪ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪11‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

: ٤ ‫ﻣﺜﺎﻝ‬

‫ ﺭﺍ‬BU9999 ‫ ﻣﺴـﺎﻭﻱ‬title_id ، Pubs ‫ ﻣﺮﺑﻮﻁ ﺑـﻪ ﺩﻳﺘـﺎﺑﻴﺲ‬Titles ‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺩﺭ ﺟﺪﻭﻝ‬
.‫ﺣﺬﻑ ﻛﻨﻴﻢ ﻭ ﺣﺎﻝ ﺭﺍ ﺩﺭ ﻳﻚ ﮔﺮﻳﺪ ﻧﻤﺎﻳﺶ ﺩﻫﻴﻢ‬

: ‫ﺑﻪ ﺻﻮﺭﺕ ﺧﻼﺻﻪ‬

private void Page_Load(object sender, System.EventArgs e)


{
SqlConnection sqlconnectionPubs = new
SqlConnection("server=(local);uid=sa;pwd=;database=pubs");

SqlDataAdapter sqldataadapterTitles = new


SqlDataAdapter("select title, notes,"+
"price from titles where type='business'", sqlconnectionPubs);

String deleteCmd =
"DELETE FROM titles WHERE title_id = 'BU9999'";

SqlCommand sqlcommandTitles =
new SqlCommand(deleteCmd, sqlconnectionPubs);

sqlcommandTitles.Connection.Open();
sqlcommandTitles.ExecuteNonQuery();
sqlcommandTitles.Connection.Close();

DataSet datasetTitles = new DataSet();


sqldataadapterTitles.Fill(datasetTitles, "titles");

DataGrid1.DataSource=datasetTitles.Tables["titles"].DefaultView;
DataGrid1.DataBind();

‫ﺍﺣﺘﻤﺎﻻ ﺍﺯ ﺷﻜﻞ ﺧﺮﻭﺟﻲ ﺑﻲ ﺭﻭﺡ ﺑﺮﻧﺎﻣﻪ ﺯﻳﺎﺩ ﺭﺍﺿﻲ ﻧﻴﺴﺘﻴﺪ! ﺭﻭﻱ ﺩﻳﺘﺎ ﮔﺮﻳﺪ ﻛﻠﻴﻚ ﺭﺍﺳﺖ ﻧﻤﺎﻳﻴﺪ ﻭ ﺳـﭙﺲ‬
‫ ﺩﺭ ﺍﻳﻨﺠﺎ ﻣﻲ ﺗﻮﺍﻥ ﺍﻧﻮﺍﻉ ﻭ ﺍﻗﺴﺎﻡ ﺣﺎﻟﺖ ﻫـﺎﻱ ﺧﺮﻭﺟـﻲ ﺭﺍ ﺑـﺮﺍﻱ ﺩﻳﺘﺎﮔﺮﻳـﺪ‬.‫ ﺁﻧﺮﺍ ﺍﻧﺘﺨﺎﺏ ﻛﻨﻴﺪ‬Auto Format
.‫ﺍﻧﺘﺨﺎﺏ ﻛﺮﺩ‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
([email protected]) ‫ ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ‬: ‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ‬
12 ASP.NET ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻣﺮﺗﺐ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﺩﺭ ﻳﻚ ﺑﺎﻧﻚ ‪: SQL-server‬‬

‫ﻫﻨﮕﺎﻣﻴﻜﻪ ﺑﺎ ﺣﺠﻢ ﺯﻳﺎﺩﻱ ﺍﺯ ﺍﻃﻼﻋﺎﺕ ﺳﺮﻭﻛﺎﺭ ﺩﺍﺭﻳﻢ ﺑﺴﻴﺎﺭ ﻻﺯﻡ ﺍﺳﺖ ﻛﻪ ﻗﺎﺑﻠﻴﺖ ﻣﺮﺗﺐ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﻧﻴـﺰ‬
‫ﺑﻪ ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ ﺍﺿﺎﻓﻪ ﺷﻮﻧﺪ‪.‬‬
‫ﺑﺮﺍﻱ ‪ Sort‬ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﺍﺑﺘﺪﺍ ﺑﺎﻳﺪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ DataSet‬ﺩﺍﺩﻩ ﻫﺎ ﺭﺍ ﺑﻪ ‪ DataView‬ﻣﻨﺘﻘﻞ ﻛـﺮﺩ‪ .‬ﭘـﺲ ﺍﺯ‬
‫ﺁﻥ ﻣﻲ ﺗﻮﺍﻥ ﻣﻲ ﺗﻮﺍﻥ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺧﺎﺻﻴﺖ ‪ ، Sort‬ﺳﺘﻮﻥ ) ﻓﻴﻠﺪﻱ ( ﺭﺍ ﻛﻪ ﺑﺎﻳﺪ ﺍﻳﻦ ﻋﻤﻠﻴﺎﺕ ﺭﻭﻱ ﺁﻥ ﺻﻮﺭﺕ‬
‫ﮔﻴﺮﺩ ﺭﺍ ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬
‫ﺭﺍﻩ ﺩﻭﻣﻲ ﻛﻪ ﻋﻤﻮﻣﺎ ﺳﺎﺩﻩ ﺗﺮ ﺍﺯ ﺭﻭﺵ ﺫﻛﺮ ﺷﺪﻩ ﻣﻲ ﺑﺎﺷﺪ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻋﺒﺎﺭﺕ ‪ Order By‬ﺩﺭ ﻋﺒﺎﺭﺕ ‪SQL‬‬
‫ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺩﻗﻴﻘﺎ ﻛﺎﺭ ﺩﺳﺘﻮﺭﺍﺕ ﻓﻮﻕ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﺪ ‪.‬‬

‫ﻣﺜﺎﻝ ‪: ٥‬‬

‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺩﺭ ﺟﺪﻭﻝ ‪ titles‬ﻭ ﺳﺘﻮﻥ ‪ title‬ﺩﻳﺘﺎﺑﻴﺲ ‪ Pubs‬ﺭﺍ ﻣﺮﺗﺐ ﻛﻨﻴﻢ‪.‬‬

‫ﺑﻪ ﺻﻮﺭﺕ ﺧﻼﺻﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺍﻳﻨﻜﻪ ﺗﻮﺿﻴﺤﺎﺕ ﺁﻥ ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ ﻫﺎﻱ ﻗﺒﻞ ﻣﻲ ﺑﺎﺷﺪ ‪:‬‬

‫)‪private void Page_Load(object sender, System.EventArgs e‬‬


‫{‬
‫‪SqlConnection sqlconnectionPubs = new‬‬
‫;)"‪SqlConnection("server=(local);uid=sa;pwd=;database=pubs‬‬

‫= ‪SqlDataAdapter sqldataadapterTitles‬‬
‫‪new SqlDataAdapter("select title, notes,"+‬‬
‫;)‪"price from titles where type='business'", sqlconnectionPubs‬‬

‫;)(‪DataSet datasetTitles = new DataSet‬‬


‫;)"‪sqldataadapterTitles.Fill(datasetTitles, "titles‬‬

‫= ‪DataView dataviewTitle‬‬
‫;‪datasetTitles.Tables["titles"].DefaultView‬‬
‫;"‪dataviewTitle.Sort = "title‬‬

‫;‪DataGrid1.DataSource=dataviewTitle‬‬
‫;)(‪DataGrid1.DataBind‬‬
‫}‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪13‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺩﺭ ﻓﺼﻠﻲ ﻛﻪ ﮔﺬﺷﺖ ﺑﺎ ﻳﻚ ﺳﺮﻱ ﺍﺯ ﺍﺳﺎﺳﻲ ﺗﺮﻳﻦ ﺍﻋﻤﺎﻟﻲ ﻛﻪ ﺩﺭ ﻫﻨﮕﺎﻡ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺑﺎﻧﻚ ﻫﺎﻱ ﺍﻃﻼﻋﺎﺗﻲ‬
‫ﺳﺮﻭﻛﺎﺭ ﺩﺍﺭﻳﻢ ﺁﺷﻨﺎ ﺷﺪﻳﻢ‪ .‬ﺍﻳﻦ ﻣﻮﺍﺭﺩ ﺗﻘﺮﻳﺒﺎ ‪ ٦٠‬ﺩﺭﺻﺪ ﻛﺎﺭ ﻧﺮﻣﺎﻝ ﺭﺍ ﺷﺎﻣﻞ ﻣﻲ ﺷﻮﻧﺪ ﻭ ﺑﻘﻴﻪ ﺁﻧﻬﺎ ﻳﻚ ﺳﺮﻱ‬
‫ﻣﻮﺍﺭﺩ ﭘﻴﺸﺮﻓﺘﻪ ﺗﺮ ﺩﺭ ﻣﻮﺭﺩ ﻛﺎﺭ ﺑﺎ ‪ Stored Procedures‬ﻭ ﻧﻤﺎﻳﺶ ﭘﻴﺸﺮﻓﺘﻪ ﺩﺍﺩﻩ ﻫﺎ ﺍﺳﺖ ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪14‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺗﻤﺮﻳﻦ ‪:‬‬

‫‪ -١‬ﻳﻚ ﻛﻼﺱ ﺟﺪﻳﺪ ﺍﻳﺠﺎﺩ ﻛﻨﻴﺪ ﺑﺮﺍﻱ ﺑﺎﻳﻨﺪ ﻛﺮﺩﻥ ﺍﻃﻼﻋﺎﺕ ﻳﻚ ﺩﻳﺘﺎﺑﻴﺲ ﺑﻪ ﺩﻳﺘﺎﮔﺮﻳﺪ‪ .‬ﺍﻳﻦ ﻛﻼﺱ ﻣﻮﺍﺭﺩ ﺯﻳﺮ‬
‫‪، strSQL ، strConnectinString‬‬ ‫ﺭﺍ ﺑـــــﻪ ﺻـــــﻮﺭﺕ ﺧﺎﺻـــــﻴﺖ ﺩﺭﻳﺎﻓـــــﺖ ﻣـــــﻲ ﻛﻨـــــﺪ ‪:‬‬
‫ﻭ ﻳﻚ ﻣﺘﺪ ﻫﻢ ﺑﻪ ﻧـﺎﻡ ‪ bindToDataGrid‬ﻛـﻪ ﻛـﺎﺭ ﻧﻬـﺎﻳﻲ ﺍﺗﺼـﺎﻝ ﺭﺍ ﺍﻧﺠـﺎﻡ‬ ‫‪strTableNameToBind‬‬

‫ﺧﻮﺍﻫﺪ ﺩﺍﺩ ‪.‬‬


‫‪ -٢‬ﻛﻼﺳﻲ ﺟﺪﻳﺪ ﺑﺮﺍﻱ ﺍﺿﺎﻓﻪ ﻛﺮﺩﻥ ﺩﺍﺩﻩ ﻫﺎ ﺑﻪ ﺑﺎﻧﻚ ‪ SQL-Server‬ﺍﻳﺠﺎﺩ ﻛﻨﻴﺪ‪ .‬ﺩﺭ ﺍﻳﻦ ﻛﻼﺱ ﻣﻮﺍﺭﺩ ﺯﻳﺮ‬
‫ﻭ ﺁﺭﺍﻳـﻪ‬ ‫‪strTableNameToAdd ، strConnectinString‬‬ ‫ﺑﻪ ﺻﻮﺭﺕ ﺧﺎﺻﻴﺖ ﺩﺭﻳﺎﻓﺖ ﻣﻲ ﺷـﻮﻧﺪ ‪:‬‬
‫ﻭ ﺩﺭ ﺁﺧﺮ ﺑﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﻓﺮﺍﺧـﻮﺍﻧﻲ‬ ‫‪InputsToAdd‬‬ ‫ﺍﻱ ﺍﺯ ﻣﻮﺍﺭﺩ ﻭﺭﻭﺩﻱ ﻛﻪ ﺑﺎﻳﺪ ﺍﺿﺎﻓﻪ ﺷﻮﻧﺪ ﺑﻪ ﻧﺎﻡ‬
‫ﻣﺘﺪ ‪ addRecordsToSQLdb‬ﻛﺎﺭﺍﺿﺎﻓﻪ ﻛﺮﺩﻥ ﺭﻛﻮﺭﺩ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﺻﻮﺭﺕ ﮔﻴﺮﺩ‪ .‬ﺩﺭ ﺍﻳﻦ ﻛـﻼﺱ ﺑـﺪﻳﻬﻲ‬
‫ﺭﺷﺘﻪ ﻱ ‪ SQL‬ﺑﺮﺍﻱ ‪ Insert‬ﻛﺮﺩﻥ ﺑـﻪ ﺻـﻮﺭﺕ ﺧﻮﺩﻛـﺎﺭ ﺻـﻮﺭﺕ ﺧﻮﺍﻫـﺪ‬ ‫ﺍﺳﺖ ﻛﻪ ﻋﻤﻠﻴﺎﺕ ﺍﻳﺠﺎﺩ‬
‫ﮔﺮﻓﺖ‪ .‬ﺍﻳﻦ ﺗﻤﺮﻳﻦ ﻫﺎ ﺩﺭ ﺣﻘﻴﻘﺖ ﺍﻳﺪﻩ ﺍﻱ ﺑﺮﺍﻱ ﺷﻤﺎ ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﻌﻀﻲ ﺍﺯ ﻛﺎﺭﻫﺎ ﺑﺎﻳﺪ ﻳﻜﺒﺎﺭ ﺑﺮﺍﻱ ﻫﻤﻴﺸﻪ‬
‫ﺍﻧﺠﺎﻡ ﺷﻮﻧﺪ ﻭ ﺑﺎ ‪ Encapsulation‬ﻳﻚ ﺳﺮﻱ ﺍﺯ ﺗﻮﺍﺑﻊ ﺩﻧﻴﺎ ﭼﻘﺪﺭ ﺯﻳﺒﺎﺗﺮ ﺧﻮﺍﻫﺪ ﺷﺪ!‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪15‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬

You might also like