مقالات

تعریف-و-توضیح-Sql-DataSource

تعریف و توضیح Sql DataSource

برای نمایش دادن اطلاعات به کاربر از طریق طراحی سایت و اتصال ان به دیتابیس و نمایش اطلاعات به یوزر به شکل زیر میباشد .

Sql DataSource

و فضاھای نام زير را پوشش می دھد:

اين ھا ھمان Provider ھای پايگاه داده ھستند.و به صورت زير به تعريف SqlDataSource اضافه می شوند در زير ما فضای نام مربوط به پايگاه داه ی Sql را به آن نسبت داديم:

نکته : ارتباط بین DataSource و سئو سایت تنها مواقعی مهم میشود که اطلاعات در دیتابیسی ذخیره شده باشد که دامنه شما در ان جاست و محتوای سایت از دیتا بیسی دیگر خوانده نمیشود.

مھم تر از ھر چيز رشته ی اتصال است.شما اگر ارز قبل تگ ConnectionStrings را در فايل Web.Config پر کرده باشيد با استفاده از تگ <..$%> می توانيد به آن دسترسی داشته باشيد:

در مرحله ی بعدی برای اینکه در طراحی وبسایت ايجاد يک Query برای اين کنترل است.اگر ھدف شما Select کردن تعدادی سطر باشد از گزينه ی SelectCommand استفاده کنيد:

اين متدھا در قسمت Properties از Visual Studio نيز قابل دسترسی ھستند.ولی ما به صورت کد ينگ ھمه ی آنھا را بيان می کنيم تا با صفحه ی Aspx نيز آشنا شويد. سپس می توانيد خروجی اين کنترل را در يک جا نمايش دھيد جدول ما 2 ستون دارد 1- نام 2- شماره حساب می خواھيم نام ھا را در يک کنترل ListBox قرار داده و سپس کل داده ھا را در يک GridView نشان دھيم.

برای نمايش نام ھا در کنترل ListBox در رويداد Page_Load به صورت زير عمل میکنيم:

البته روش ھای مختلفی برای اين کار وجود دارد مثلا در تگ DataSourceID از کنترل ListBox می توانيد نام SqlDataSource مربوطه را ذکر کنيد:

اگر اين کار را کنيد نياز به Bind کردن صفحه نداريد چون اين کار خودکار انجام می شود.اين کار را برای کنترل GridView ھم می توانيد انجام دھيد.صفت DataSourceID شناسه ی کنترل منبع داده که ما در بالا نام ان را (SqlDataSource) گذاشتيم.حال نوبت GridView است:

در کنترل SqlDataSource يک خاصيت وجود دارد به نام DataSource خوب شايد تعجب کنيد ولی اين خاصيت دو مقدار بيشتر ندارد 1-DataSet 2- DataReader که مقدار پيش فرض ھم ھست.شما ھم با شی DataSet و ھم با شی DataReader آشناييد و می دانيد که ھر دو می توانند جداول پايگاه داده را درخود ذخيره کنند.با آشنايی که از DataSet داريم می دانيم که به مراتب بھتر از DataReader است.زيرا پشتيبانی آن از Sorting-filtering … باعث اين امر است علاوه بر اين ھا در حجم ھای انبوه سطر در يک جدول اگر از DataReader استفاده کنيد حجم حافظه ای بسيار زيادی را اشغال میکند.

حال می خواھيم يک مثال با دستورات Sql حاوی پارامتر را با ھم ببينيم.در اين مثال يک کنترل DropDownList داريم که حاوی نام يک سرس شھر است و می خواھيم با انتخاب ھر شھر دران اسمی مشتريانی که در آن ھر حساب دارند در يک GridView نمايش داده شود.پس ابتدا کنترل منبع داده ای برای اسامی شھر ھا در نظر می گيريم:

دقت کنيد چون اسامی شھر ھا در پايگاه داده بسيار زياد و تکراری بودند ما از عبارت DISTINCT جلوی Select استفاده کرديم تا تکراری ھا از بين رفته و از ھر شھر فقط يک نام به ما بدھد.سپس اين منبع داده ای را به کنترل DropDownList نسبت می دھيم و از آنجايی که ھيچ دکمه ای در ميان نيست يعنی پس از انتخاب آيتم از DropDownList می خواھيم به صفحه ی مربوطه برويم ميبايست خاصيت AutoPostBack آن را true قرار دھيم اين کار علاوه بر اين باعث بھبود کارايی وبسايت می شود و با ھر بار PostBack شدن صفحه باعث می شود ھر بار کنترل DropDownList از پايگاه داده خود را به روز نکند:

حال نوبت به منبع داده ی دوم می رسد:

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

alloweb.ir

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

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

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