بررسی كنترل های منبع داده در ASP.NET 2.0 New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 يکشنبه  8  اسفند  1395  2017  Feb.  26   Sunday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 كنترل های منبع داده در ASP.NET 2.0 ( بخش سوم )

 مديريت وب

11272

8

4.4

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

 تاثير حافظه اصلی بر كارآئی سيستم

 كنترل های منبع داده در ASP.NET 2.0  ( بخش سوم )

آنچه تاكنون گفته شده است :

  • بخش اول  : بررسی روش های متفاوت نمايش اطلاعات در صفحات وب  
  • بخش دوم : بررسی روش های دستيابی و نمايش داده در ASP كلاسيك و ASP.NET 1.x

در اين بخش به بررسی نحوه دستيابی و نمايش داده در 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>

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



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382