ادامه-تعریف-و-توضیح-Sql-DataSource

ادامه Sql DataSource

ادامه مبحث Sql DataSource در پست قبلی

SqlDataSourceبه شرح زير است:

SelectParameter: که پارامتر ھای مخصوص Query ھای Select را در برميگيرد.

UpdateParameter:که پارامتر ھای مخصوص Query ھای Update را در را درمیگیرد.

DeleteParameter: که پارامتر ھای مخصوص Query ھای Delete را در برمیگیرد.

در اينجا چون Query ما از نوع Select است از تگ SelectParameter استفاده می کنيم:

حالا درداخل اين تگ چه بنويسيم؟.ليست عناصری که ميتوان از آن ھا به عنوان پارامتر در استفاده کرد در زيرآمده است:

ControlParameter: مشخص می کند معماری طراحی وب سایت از مقدار Value پارامتر ما از يک کنترل تامين شود.مثلا يک TextBox که در سایت داريم که خاصيت Text آن را به عنوان Value پارامتر خود در نظر می گيريم.

QueryString Value:مشخص می کند که Value پارامتر ما از يک QueryString که از صفحه ی قبل به صفحه ی جاری سایت فرستاده شده تامين شود.

SessionState Value:مشخص می کند که Value پارامتر ما از يک شی Session بدست آيد که قبلا آن را مقدار دھی کرده بوديم.

آن را مقدار دھی کرده بوديم.

Parameter: که مشخص کننده ی حضور يک پارمتر در Query ماست.و در کنترل ھايی مثل GridView که مثلا قصد ويرايش و يا حذف را دارد می باشد.

Cookie Value: مشخص می کند که Value پارامتر ما مقدار يک Qookie باشد.

Profile Value: مشخص می کند که Value پارامتر ما از يک Profile تامين شود که در فصول مربوط به Security به آن می پردازيم.

مقدار پارمتر دهی در معماری وبسایت باید به گونه ای سازمان دهی شود که به بهینه سازی سرعت سایت کمک شود تا تعداد درخواست ریکوست به سرور کمتر شود این مورد به سئو وبسایت کمک شایانی میکند

در اينجا پارامتر ما از خصوصيت SelectedValue کنترل DropDownList تامين ميشود.شايد از خود بپرسيد ما که DataValueField را در دیتا بیس سایت مقداردھی نکرديم و DataTextField را مقداردھی کرديم پس چرا خصوصيت SelectedValue کنترل DropDownList انتخاب می شود؟در پاسخ بگويم اگر شما در ھر کنترل ليستی Textرا تعيين کنيد ولی Value راتعيين نکنيد مقدار Text خود به خود به Value ھم منتقل میشود. از آنجاييکه DropDownList کنترل است پس بايد پارامتر از نوع ControlParameter باشد:

اين تگ بايد حداقل حاوی ٣ مقدار مھم باشد:

ControlID که Id کنترلی که پارامتر از آن تامين ميشود است که در اينجا DropDownList1 است.

2-Name که نام پاراکتر مربوطه است که در اينجا city است.

3-PropertName که نام خاصيتی از کنترلی است که پارامتر از آن تامين می شود.مثلا اگر کنترل ما TextBox باشد اين خاصيت مقدار SelectedValue را به خود اختصاص می دھد.

اين متدھا و خواص در قسمت Properties از Visual Studio نيز قابل دسترسی و تنظيم ھستند. در نھايت ھم کافی است نتيجه ی حاصل را در يک کنترل GridView نمايش دھيم:

ھمچنين شما می توانيد برای جلوگيری از شلوغی که Query ھای Sql ايجاد ميکنند و بالا رفتن کارايی سايت از StoredProcedure استفاده کنيد.اگر بخواھيم مثال بالا را با StoredProcedure تنجام دھيم بايد نام StoredProcedure که در اينجا sss است به خاصيت SelectCommand نسبت دھيم :

و نوع آن را StoredProcedure ھم به صورت زير است:

پس کد کلی آن به صورت زير می شود:

ھمه چيز مثل قبل است از جمله نحوه ی تعريف و مقدار دھی پارامتر ھا. نکته ی کلی اين است که در اينجا می توانستيد مقادير مختلف پارامتر را سایت به صرت Visual در قسمت Command And Parameter Editor نيز انجام بدھيد تا از کد نويسی طولانی خلاص شويد. و به بهینه سازی سایت کمک شود.

حالا در زير می خواھيم يک مثال با ھم ببينيم که پارامتر ھا در آن از يک QueryString تامين شوند.برای اين مثال اين طور در نظر می گيريم که اسامی شھرھا در يک ListBox به صورت غير تکراری قرار گرفته باشند و يک دکمه ھم در آنجا باشد.وقتی روی دکمه کليک کنيم ايتم انتخاب شده در ListBox با QueryString به يک صفحه ی ديگری منتقل شود و در آنجااز اين QueryString که منتقل شده به عنوان پارامتر نام شھر برای بازيابی مشتريانی که در آن شھر زندگی می کنند استفاده می کنيم. پس ابتدا صفحه ی اول را طراحی کنيم.اول يک کنترل SqlDataSource دران قرارداده و نام شھر ھا را به طورغير تکراری بازيابی می کنيم:

سپس يک کنترل ListBox در صفحه قرار داده و منبع داده ای آن را کنترل SqlDataSource در نظر گرفته و يادتان باشد خاصيت DataTextField نيز برايش تعريف کنيم:

سپس يک دکمه در صفحه قرار داده:

و در رويداد کليکش QueryString مربوطه را ارسال ميکنيم:

اين نکته راھم بگويم که شما می توانستيد يک تابع به صورت زير بنويسيد:

وسپس دکمه را به اين صورت تعريف کنيد:

ھمانطور که ميبينيد در خصوصيت OnClick در آن تابع مربوطه را صدا زديم. حالا کار صفحه ی اول تمام است و به سراغ صفحه ی دوم می رويم.و کد تعريف کنترل SqlDataSource را به صورت زير می نويسيم:

ھمانطور که می بينيددر اينجا ما از ھمان StoredProcedures به نام sss که بالاتر تعريف کرده بوديم استفاده کرديم.حال نوبت به تعريف پارامتر می رسد.چون پارامتر ما برای عمليات select است پس از SelectCommand استفاده می کنيم.سپس از آنجايی که نوع ان از QueryString تامين می شود پس از تگ <asp:QueryStringParameter> استفاده می کنيم که حداقل خصوصياتی که در آن بايد مقداردھی میشود. 2 تا است اولی نام پارامتر در Query مربوطه و دومی QueryStringField نام متغيری که Value مربوطه در ان وجود دارد و از صفحه ی قبلی ارسال شده.

 

طراحی سایت الو وب

اشتراک گذاری پست

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *