0% found this document useful (0 votes)
48 views15 pages

Asp Net ch08 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views15 pages

Asp Net ch08 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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