تبلیغات
آموزشASP.NET - كنترل های منبع داده در ASP.NET 2.0 ( بخش سوم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
در این بخش به بررسی نحوه دستیابی و نمایش داده در ASP.NET 2.0 خواهیم پرداخت .
با این كه اكثر محتویات صفحات وب از تركیب اطلاعات ثابت با Html و یا پردازش بر روی داده های ورودی توسط كاربر تامین می گردد ولی در اكثر وب سایت های مدرن، اطلاعات از منابع ذخیره سازی داده  نظیر بانك های اطلاعاتی ، فایل های متنی  ، XML و سایر منابع ذخیره سازی استخراج و نمایش داده می شود .
بانك های اطلاعاتی ، معمولا" به عنوان اولین منبع ذخیره سازی داده برای ارائه اطلاعات در صفحات وب مطرح می باشند . در ASP.NET 2.0 ، امكانات متعددی به منظور تسهیل در امر دستیابی و نمایش داده بر روی صفحات وب ارائه شده است . معرفی كنترل های جدید منبع داده، نمونه ای در این زمینه می باشد .
در نسخه های قبل از ASP.NET 2.0 ، دستیابی به بانك های اطلاعاتی مستلزم انجام یك فرآیند خاص شامل بازنمودن بانك اطلاعاتی ، بازیابی ركوردها ، ایجاد یك ساختار تكرار به منظور حركت بین ركوردهای بازیابی شده ، انجام عملیات مورد نیاز و در نهایت بستن ارتباط ایجاد شده با بانك اطلاعاتی است . در ASP.NET 2.0 تمامی عملیات فوق در كنترل هائی كه مختص این كار طراحی شده اند ، كپسوله شده است .


ماهیت و دستاورد كنترل های منبع داده
در ASP.NET 2.0 ، با ارائه كنترل های خاصی كه از آنان با نام كنترل های منبع داده نام برده می شود ، پیاده كنندگان می توانند به سرعت و با نوشتن حداقل كد به بانك اطلاعاتی مرتبط و پس از استخراج داده مورد نیاز ، آنان را در یكی از كنترل های نمایش اطلاعات و یا برخی كنترل های سرویس دهنده ورودی ( نظیر DropDownList ) نمایش دهند .
كنترل های منبع داده ، یك روش تعریفی به منظور كار با داده را در مقابل نوشتن كد به منظور اتصال به بانك اطلاعاتی ، اجرای یك دستور ، بازیابی نتایج و ذخیره آنان در یك ساختمان داده مناسب نظیر DataReader و یا DataSet فراهم می نمایند . عملیات فوق با استفاده از كنترل های منبع داده به صورت اتوماتیك و نوشتن حداقل كد لازم انجام خواهد شد . ( توجه داشته باشید كه در برخی موارد لازم است ، همچنان كد لازم به منظور دستیابی داده نوشته گردد) . پس از پیكربندی مناسب یك كنترل منبع داده ، می توان آن را به هر نوع كنترل سرویس دهنده نمایش اطلاعات نسبت داد . زمانی كه یك صفحه ASP.NET حاوی یك كنترل منبع داده و  نمایش اطلاعات است، كنترل سرویس دهنده نمایش اطلاعات به صورت اتوماتیك كنترل منبع داده مرتبط با خود را فراخوانده  و پس از بازیابی داده آنان را  نمایش می دهد .
كنترل های منبع داده در ASP.NET 2.0 بدین منظور معرفی شده اند كه مزایای نمایش داده در صفحات وب را به دستیابی داده نیز تعمیم داده  تا پیاده كنندگان بتوانند علاوه بر استفاده از پتانسیل های موجود به منظور نمایش داده از امكانات بالقوه ای برای دستیابی داده نیز استفاده نمایند . با استفاده از كنترل های منبع داده ، پیاده كنندگان می توانند با نوشتن حداقل كد به منابع داده دستیابی داشته باشند . بدین ترتیب ، حجم كد مورد نیاز به منظور دستیابی و نمایش داده در صفحات وب كاهش می یابد (در مقایسه با ASP.NET 1.x) .
در  ASP.NET 2.0 ، پنج كنترل منبع داده متفاوت ارائه شده است كه هر یك به منظور دستیابی به یك نوع خاص منبع داده  طراحی شده اند . به عنوان نمونه ، كنترل منبع داده SqlDataSource به منظور دستیابی داده از یك بانك اطلاعاتی رابطه ای و كنترل منبع داده XmlDataSource به منظور دستیابی و كار با یك فایل Xml ارائه شده اند .
صرفنظر از نوع منبع داده ، آنان با استفاده از یك روش مشابه به كنترل های سرویس دهنده نمایش اطلاعات و یا كنترل های داده وب  مرتبط می گردند . بدین ترتیب ، دانش لازم به منظور كار با داده موجود در منابع داده متفاوت كاهش می یابد و پیاده كنندگان برای اتصال به یك بانك اطلاعاتی SQL Server و یا دستیابی و فیلترینگ محتویات یك فایل Xml  از روش هائی مشابه و مستقل از نوع منبع داده استفاده می نمایند .

انواع كنترل های منبع داده در ASP.NET 2.0
كنترل های منبع داده در ASP.NET 2.0

كنترل های منبع داده این امكان را در اختیار پیاده كنندگان صفحات قرار می دهند كه بتوانند برنامه های وب با محوریت دستیابی به داده را بدون نیاز به جزئیات كار پیاده سازی نمایند .
توجه داشته باشید كه  همچنان می توان به منظور دستیابی و تغییر داده در برنامه های وب نوشته شده با استفاده از ASP.NET 2.0  از روش های موجود در  ASP.NET 1.x استفاده نمود . مثلا" می توان همچنان از كلاس های SqlConnection ، SqlCommand و SqlDataReader به منظور دستیابی داده استفاده نمود و با توجه به نتایج بدست آمده آنان را به یك كنترل سرویس دهنده نمایش اطلاعات با استفاده از خصلت DataSource نسبت داد .
مهمترین مزیت كنترل های منبع داده  ، ارائه یك روش تعریفی به منظور كار با داده است .

نسبت دهی یك كنترل منبع داده به یك كنترل سرویس دهنده نمایش اطلاعات
از آنجائی كه كنترل های منبع داده ، كنترل هائی تعریفی می باشند ( نظیر سایر كنترل های سرویس دهنده ASP.NET ، همانند Label,TextBox,Button و...) ، می توان  آنان را به سادگی به هر یك از صفحات وب مورد نیاز اضافه نمود .پس از استقرار آنان در صفحات ، در ادامه می توان پیكربندی آنان را بگونه ای انجام داد تا امكان دستیابی آنان به منبع داده مورد نظر فراهم گردد . به منظور انجام این كار می بایست به خصلت DataSourceID  كنترل سرویس دهنده نمایش اطلاعات ، مقدار Id كنترل منبع داده نسبت داده شود . توجه داشته باشید كه كنترل هائی كه از كلاس BaseDataBoundControl مشتق می شوند، دارای خصلت DataSourceID می باشند ( نظیر كنترل های AdRotator, BulletedList, CheckBoxList, DropDownList, ListBox, RadioButtonList, DetailsView, FormView, GridView, Menu و TreeView ).
پس از این كه خصلت DataSourceID به یك كنترل منبع داده نسبت داده شد ، وظیفه شما به عنوان پیاده كننده صفحات وب انجام شده است . در حین چرخه حیات صفحه ، كنترل سرویس دهنده نمایش اطلاعات و سایر كنترل های موجود ،  داده مورد نیاز خود را از منبع داده مرتبط شده با خود  درخواست می نمایند. مثلا" زمانی كه داده در یك كنترل GridView ( گزینه جایگزین با DataGrid در ASP.NET 2.0 ) با استفاده از یك كنترل منبع داده نظیر  SqlDataSource  نمایش داده می شود ،  كنترل GridView متد GetView كنترل SqlDataSource را فراخوانده تا با توجه به مقادیر نسبت داده شده به هر یك از خصلت های كنترل SqlDataSource ، به داده مورد نظر دستیابی و  امكان بازیابی آنان فراهم گردد . داده بازیابی شده در ادامه در Gridview قرار گرفته و به منظور نمایش در مرورگر سرویس گیرندگان با آن به عنوان یك جدول Html برخورد خواهد شد .
كنترل های منبع داده ، پیاده كنندگان را قادر می سازند كه بدون نیاز به كد به داده دستیابی داشته باشند ( همانند كنترل های سرویس دهنده نمایش اطلاعات  كه این امكان را در اختیار پیاده كنندگان قرار می دهند تا بدون نیاز به كد داده را نمایش دهند) .

دستیابی  داده
برای دستیابی به یك منبع داده با توجه به نوع منبع داده ، می بایست از یكی از كنترل های منبع داده استفاده گردد . فرض كنید قصد داریم به یك منبع داده از نوع بانك اطلاعاتی اكسس دستیابی داشته باشیم . بدین منظور از كنترل asp:AccessDataSource استفاده می گردد . كنترل فوق دارای خصلت های متعددی است . شكل عمومی این كنترل به صورت زیر است : 

فرمت تعریف یك  AccessDataSource

<asp:AccessDataSource id="string" Runat="Server"
   DataFile="path"
   DataSourceMode="DataSet|DataReader"
   SelectCommand="SQL SELECT statement" />

 

id ، نام نسبت داده شده به كنترل است . خصلت DataFile ، مسیر بانك اطلاعاتی را مشخص می نماید . مسیر فوق می تواند مسیر فیزیكی سرویس دهنده باشد كه با نام یك درایو آغاز شده است و یا یك مسیر مجازی نسبت به صفحه وب شامل كنترل و یا یك مسیر نسبی نسبت به دایركتوری ریشه وب باشد . خصلت DataSourceMode ، نوع ساختمان داده ئی كه ركوردهای برگردانده شده در آن ذخیره خواهند شد را مشخص می نماید . گزینه پیش فرض ، DataSet است . خصلت SelectedCommand ، یك عبارت SQL SELECT را مشخص می نماید تا با استفاده از آن فیلدهای مورد نظر از جدول بانك اطلاعاتی بازیابی شود . در این بخش می توان هر نوع عبارت SELECT مربوط به یك جدول و یا جداول JOIN را استفاده نمود .
مثال : در نمونه كد زیر به بانك اطلاعاتی TestDb.mdb متصل و از جدول products آن فیلدهای مورد نیاز بازیابی شده است .

دستیابی به یك بانك اطلاعاتی نمونه

<asp:AccessDataSource id="ProductsSource" Runat="Server"
 DataFile="~/Db/TestDb.mdb"
SelectCommand="SELECT ItemNumber, ItemName, ItemPrice, ItemQuantity FROM Products"/>

نمایش  داده
به منظور نمایش مجموعه ركوردهای برگردانده شده با توجه به پیكربندی انجام شده كنترل منبع داده ، می توان از یك كنترل سرویس دهنده نمایش اطلاعات نظیر Gridview استفاده نمود . كنترل asp:Gridview قدرتمندترین كنترل سرویس دهنده به منظور نمایش داده بازیابی شده از یك منبع داده  است . كنترل فوق بگونه ای طراحی شده است تا بتواند به راحتی با جداول بانك اطلاعاتی كار كند . از كنترل فوق می توان برای نمایش سایر منابع داده رابطه ای كه اطلاعات را به صورت مجموعه ای از سطرها و ستون ها سازماندهی می نمایند نیز استفاده نمود.
كنترل فوق ، دارای پتانسیل لازم به منظور همكاری عملیاتی با كنترل های منبع داده است، بنابراین با حداقل كد ممكن می توان اطلاعات موجود در بانك اطلاعاتی را استخراج و در یك ساختار نمایشی نظیر Gridview نمایش داد . Gridview ، اطلاعات استخراج شده از یك بانك اطلاعاتی را به صورت یك جدول حاوی سطرها وستون هائی نمایش می دهد .برای نسبت دادن كنترل به یك منبع داده از خصلت DataSourceID استفاده می گردد .بدین منظور، لازم است كه  id كنترل منبع داده به خصلت فوق نسبت داده شود . GridView به صورت پیش فرض و اتوماتیك ، ستون هائی را متناسب با تعداد فیلدهای موجود در جدول  بانك اطلاعاتی ایجاد می نماید . تعداد سطرهای موجود در جدول نیز معادل تعداد ركوردهای بازیابی شده از بانك اطلاعاتی است .
شكل عمومی این كنترل به صورت زیر است : 

فرمت تعریف یك  Gridview

<asp:GridView id="value" Runat="Server"
AllowPaging="True|False"
AllowSorting="True|False"
AutoGenerateColumns="True|False"
Caption="string"
CaptionAlign="Left|NotSet|Right|Justify"
CellPadding="n"
CellSpacing="n"
DataSourceID="id"
EmptyDataText="string"
GridLines="Both|Horizontal|Vertical|None"
PageSize="n"
ShowHeader="True|False"
ShowFooter="True|False"

property="value"...
Style="CSS style settings..."
HeaderStyle-property="value"...
RowStyle-property="value"...
AlternatingRowStyle-property="value"...
FooterStyle-property="value"...
/>

مثال : در نمونه كد زیر یك GridView تعریف و به یك كنترل منبع داده نسبت داده شده است . برای ایجاد Gridview به حداقل كد نیاز است و همه چیز به صورت تعریفی و بدون نیاز به نوشتن اسكریت انجام می شود .

نمایش اطلاعات بازیابی‌شده از یك منبع داده

 <asp:GridView id="ProductGrid"    DataSourceID="Products" Runat="Server" />

همانگونه كه در كد فوق مشاهده می نمائید ، كنترل asp:Gridview با یك كنترل asp:AccessdataSource تركیب تا امكان ایجاد یك recordset به منظور نمایش اطلاعات موجود در یك بانك اطلاعاتی اكسس را فراهم نماید . كنترل GridView با منبع داده از طریق خصلت DataSourceId كه مقدار id كنترل AccessDataSource را گرفته است ،‌ مرتبط شده است .
توجه داشته باشید كه در این مقاله قصد تشریح عملكرد  كنترل asp:AccessDastSource و یا GridView را نداریم و هدف نشان دادن نحوه دستیابی و نمایش داده در ASP.NET 2.0 است .
مثال : در نمونه برنامه زیر به یانك اطلاعاتی TestDb.mdb  با استفاده از یك كنترل منبع داده متصل و داده بازیابی شده با استفاده از یك كنترل Gridview نمایش داده شده است .

 دستیابی 

<Form runAt="Server">
<asp:AccessDataSource id="Products" Runat="Server"
DataFile="~/Db/TestDb.mdb"
SelectCommand="SELECT * FROM Products WHERE ItemType='Graphics'"/>

 نمایش 

<asp:GridView id="ProductsGrid" DataSourceID="Products" Runat="Server"
  AutoGenerateColumns="False"
  ShowFooter="True"
  Caption="<b>Graphics Products</b>"
  CellPadding="3"
  BorderStyle="Ridge"
  BorderWidth="5"
  BackColor="#F0F0F0"
  ForeColor="#000000"
  HeaderStyle-BackColor="#707070"
  HeaderStyle-ForeColor="#FFFFFF"
  HeaderStyle-Font-Names="Verdana"
  HeaderStyle-Font-Size="10pt"
  RowStyle-Font-Names="Verdana"
  RowStyle-Font-Size="10pt"
  AlternatingRowStyle-BackColor="#A0A0A0"
  FooterStyle-BackColor="#707070"
  FooterStyle-ForeColor="#FFFFFF">
</asp:GridView>
</Form>

همانگونه كه در مثال فوق مشاهده می نمائید به منظور دستیابی و نمایش داده از هیچگونه اسكریپتی استفاده نشده است ! توجه داشته باشید كه علاوه بر امكان دستابی و نمایش داده ، می توان از پتانسیل كنترل های فوق در جهت ویرایش داده نیز استفاده نمود .
در بخش های بعدی به بررسی هر یك از كنترل های منبع داده خواهیم پرداخت .





نوع مطلب :
برچسب ها :
لینک های مرتبط :


سه شنبه 14 شهریور 1396 03:02 ب.ظ
I have read so many articles or reviews regarding the blogger lovers however this post is actually a nice post, keep it up.
دوشنبه 30 مرداد 1396 02:22 ب.ظ
Awesome post.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :