انتخاب اطلاعات مورد نظر توسط کنترل های داده

مقدمه :

پس از اينکه کنترل وب مورد نظر خود را به کنترل داده متصل ساختيد و ارتباط بين آنها بر قرار شد ، مرحله بعدی انتخاب اطلاعاتی است که شما می خواهيد تا کنترل داده از منبع اطلاعاتی دريافت کرده و سپس توسط کنترل وب نمايش دهد .
در اين قسمت بايد توجه داشته باشيد که عمليات انتخاب داده توسط کنترل داده تعيين و اجرا شده و نه کنترل وب . در واقع کنترل وب ، فقط نمايش دهنده اطلاعاتی است که کنترل داده فراهم کرده و خود نقشی در دستورات انتخاب داده ندارد .

فرض کنيد که شما يک پايگاه داده مربوط به يک دانشگاه را در اختيار داريد . در اين پايگاه داده ، جدول های مختلفی وجود دارد که هر کدام اطلاعات گروه خاصی مثل دانشجويان ، اساتيد و ... را در خود جای داده اند . شما می خواهيد در صفحات مختلف برنامه خود ، هر قسمت اطلاعات مربوط به يک جدول را نشان داده و برخی از قسمت ها هم فقط اطلاعات خاصی را به کاربر نمايش دهد . برای مثال می خواهيد در يک قسمت اطلاعات عمومی دانشجويان و در قسمت ديگر فقط ريز نمرات آنها را نمايش دهید . در اين حالت بایستی دستورات لازم برای مدل های مختلف انتخاب داده را تعيين کنيد .
کنترل های داده روش های مختلفی را برای تعيين داده های انتخابی دارند که در ادامه آنها را بررسی می کنيم :

1 ) کنترل ObjectDataSource :

کنترل ObjectDataSource ، برای خواندن اطلاعات مورد نظر از پايگاه داده ، متدی که نام آن در خاصيت SelectMethod کنترل تعيين شده است را فراخوانی و اجرا می کند . برای مثال فرض کنيد که در يک کنترل ObjectDataSource ، يک متد جهت فراخوانی داده به نام GetAllStudents طراحی کرده ايم ، که اطلاعات عمومی دانشجويان را از پايگاه داده انتخاب و دريافت می کند . بنابراین بايد مقدار خاصيت SelectMethod کنترل را برابر با نام متد مورد نظر ِیعنی GetAllStudents قرار دهيم . در زمان اجرا برنامه ، کنترل متد تعيين شده را فراخوانی کرده و بر حسب آن اطلاعات درخواستی را دريافت نموده و به کنترل وب متصل جهت نمايش ارسال می کند .

مثال 1 : در مثال زير يک کنترل ObjectDataSource و يک کنترل GridView را ايجاد کرده ايم . همچنين يک متد به نام GetAllStudents را برای دريافت اطلاعات از منبع داده ای در خاصيت SelectMethod آن تعيين کرده ايم :

Example
<form id="form1" runat="server">

  <asp:GridView    ID="GridView1"    runat="server"    DataSourceID="ObjectDataSource1">
  </asp:GridView>

  <asp:ObjectDataSource   ID="ObjectDataSource1"  runat="server"     SelectMethod = "GetAllStudents"    typename ="Sample.AspNet.CS.Students">
  </asp:ObjectDataSource>


< form >
کد

1 ) کنترل های SqlDataSource و AccessDataSource :

کنترل های SqlDataSource و AccessDataSource برای انتخاب اطلاعات مورد نظر از پايگاه داده ، دستور SQL تعيين شده در خاصيت SelectCommand خود را اجرا می کنند . روش استفاده شده به اين شرح است گه برنامه نويس بايستی یک دستور مناسب به زبان SQL را برای داده های که می خواهد از پايگاه داده دريافت کند را در خاصيت SelectCommand کنترل قرار دهد . کنترل در هنگام اجرا ، اين دستور SQL را برای دريافت اطلاعات مورد استفاده قرار می دهد .

همچنين کنترل های SqlDataSource و AccessDataSource می توانند از توابع آماده SQL یا Stored Procedure نيز برای انتخاب داده استفاده کنند . توابع آماده دستورات SQL هسنتد که در قالب رويه هایی آماده از قبل در برنامه طراحی شده و در قسمت Stored Procedure پايگاه داده مربوطه نگهداری می شوند . چنانچه بخواهيم از توابع آماده در انتخاب اطلاعات استفاده کنيم ، بايد مقدار خاصيت SelectCommand کنترل را برابر با نام تابع آماده مورد نظر قرار داده و همچنين مقدار خاصيت SelectCommandType کنترل را بر روی مقدار Stored Procedure تنظيم کنيم .در مثال های زير موارد ذکر شده را به صورت عملی نمايش می دهيم :

مثال 2 : در مثال زير يک کنترل AccessDataSource و يک کنترل FormView را بر روی صفحه قرار داده و آنها را به هم متصل ساخته ايم . سپس دستور لازم برای دريافت اطلاعات توسط کنترل AccessDataSource از پايگاه داده MyAccessDataBase.mdb را در خاصيت SelectCommand آن تعيين کرده ايم . اين کنترل بايستی کليه اطلاعات دانشجويان را از جدول Students دريافت کرده و برای نمايش به کنترل FormView ارسال کند :

Example
<form id="form2" runat="server">

  <asp:FormView    ID="FormView1"    runat="server"    DataSourceID="Access_EX">
  </asp:FormView>


  <asp:AccessDataSource   ID="Access_EX"    runat="server"    DataFile="~/App_Data/MyAccessDataBase.mdb"   SelectCommand = "Select * From Students"
  </asp:AccessDataSource>


< form >
کد

مثال 3 : در مثال زير يک کنترل SqlDataSource و يک کنترل FormView را بر روی صفحه قرار داده و آنها را به هم متصل ساخته ايم . سپس دستور لازم برای دريافت اطلاعات توسط کنترل SqlDataSource از پايگاه داده را در خاصيت SelectCommand آن تعيين کرده ايم . اين کنترل بايستی کليه اطلاعات دانشجويان را از جدول Students دريافت کرده و برای نمايش به کنترل FormView ارسال کند :

Example
<form id="form2" runat="server">

  <asp:FormView    ID="FormView1"    runat="server"    DataSourceID="SqlControl1">
  </asp:FormView>


  <asp:SqlDataSource   ID="SqlControl1"    runat="server"   SelectCommand = "Select * From Students"   ConnectionString="<%$ ConnectionStrings:Univer_Connection %>"
  </asp:SqlDataSource>


< form >
کد

مثال 3 : مثال قبل را بازنويسی کرده ايم ، که در آن کنترل SqlDataSpurce برای دريافت اطلاعات از پايگاه داده باید تابع آماده MyFunction را اجرا کند . توجه شود که مفدار خاصيت SelectCommandType کنترل را نيز با مقدار Stored Procedure تنظيم کرده ايم :

Example
<form id="form3" runat="server">

  <asp:FormView    ID="FormView1"    runat="server"    DataSourceID="SqlControl1">
  </asp:FormView>


  <asp:SqlDataSource   ID="SqlControl1"    runat="server"   SelectCommand = "MyFunction"   SelectCommandType = "Stored Procedure"
     ConnectionString="<%$ ConnectionStrings:Univer_Connection %>"
  </asp:SqlDataSource>


< form >
کد


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1