تبلیغات
آموزشASP.NET - كنترل های منبع داده در ASP.NET 2.0 ( بخش دوم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
همانگونه كه در بخش اول اشاره گردید ، برای نمایش اطلاعات بر روی صفحات وب از چهار روش و یا منبع اساسی استفاده می گردد . بازیابی و نمایش ( و یا بازیابی ، پردازش و نمایش ) داده های موجود در منابع خارجی نظیر بانك های اطلاعاتی یكی از متداولترین روش های نمایش اطلاعات بر روی صفحات وب است .
در این بخش به بررسی امكانات ASP كلاسیك ، ASP.NET 1.x و ASP.NET 2.0 به منظور دستیابی و نمایش داده خواهیم پرداخت تا مسیر ما برای بررسی كنترل های منبع داده هموار گردد .

امكانات مورد نیاز به منظور دستیابی و نمایش داده
دستیابی و نمایش داده دو گام اساسی به منظور استفاده از داده موجود در منابع داده نظیر بانك های اطلاعاتی و یا فایل های Xml  می باشد كه لازم است در ابتدا علیرغم همگرائی هدفمند آنان ، بین دو عملیات فوق تفاوت قائل گردید.
پیاده كنندگان نرم افزار با توجه به نوع پلت فرم ، از مكانیزم های خاصی به منظور انجام هر یك از مراحل فوق استفاده می نمایند :

    • دستیابی داده : در این رابطه لازم است كه از مكانیزم و یا مكانیزم هائی به منظور  ایجاد ارتباط با بانك اطلاعاتی ، اجرای یك query  و ذخیره مجموعه ركورد برگردانده شده در یك ساختمان داده خاص،‌ استفاده گردد.

    • نمایش داده : در این رابطه لازم است كه از مكانیزم و یا مكانیزم هائی خاص به منظور نمایش داده بازیابی شده با فرمت دلخواه در صفحات وب استفاده گردد .

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

    ASP كلاسیك
    پیاده كنندگانی كه از فن آوری ASP در گذشته ای نه چندان دور به منظور پیاده سازی برنامه های وب با محوریت دستیابی داده استفاده می كردند ، مجبور بودند برای دستیابی و نمایش داده  ، اقدام به نوشتن كدهای مورد نیاز نمایند .

    دستیابی‌ داده
    گرچه به منظور دستیابی به داده در ASP كلاسیك از اشیاء متفاوتی كه به جملگی آنان ADO ( برگرفته از ActiveX Data Object ) گفته می شود ، استفاده می گردید ولی پیاده كنندگان می بایست تمامی مراحل ایجاد ارتباط با بانك اطلاعاتی تا اجرای یك Query  ، تشكیل یك Recordset و حركت در بین ركوردهای موجود در recordset  را مستقیما" كد نمایند . دستیابی داده در ASP كلاسیك مستلزم انجام مراحل زیر است :

    • مرحله اول : ایجاد یك ارتباط با بانك اطلاعاتی

    • مرحله دوم : مشخص نمودن provider و مسیر فیزیكی ذخیره بانك اطلاعاتی

    • مرحله سوم : ایجاد یك Recordset 

    • مرحله چهارم : تعریف یك query 

    • مرحله پنجم : باز كردن بانك اطلاعاتی با توجه به ارتباط ایجاد شده و اجرای query  مورد نظر

    • مرحله ششم :  بازیابی ركوردها  و ذخیره آنان در یك recordset

    نمایش داده
    در ASP كلاسیك، امكانات پیشرفته ای به منظور نمایش داده  وجود نداشت و تمام ابزار پیاده كنندگان ، یك جدول Html بود كه می توانسنتد به صورت پویا سطرها و ستون هائی را به آن اضافه نمایند ( جدول از نوع Html نه به عنوان یك كنترل سرویس دهنده ) .
    مثلا" برای نمایش نتایج برگردانده شده در اثر اجرای یك query ، پیاده كنندگان مجبور بودند كه در ابتدا داده را بازیابی نموده و در ادامه با استفاده از تگ <Tabel> یك جدول را ایجاد و به موازات حركت در بین ركوردهای برگردانده شده و از طریق یك حلقه تكرار ، هر یك از ركوردها را به عنوان یك سطر جدید به جدول اضافه نمایند .  برای افزودن یك سطر جدید ، در ابتدا با استفاده از یك تگ <tr> یك سطر جدید ایجاد و در ادامه برای هر یك از فیلدهای موجود در جدول بانك اطلاعاتی كه اطلاعات مرتبط با آنان بازیابی شده است یك ستون به كمك تگ <td> ایجاد و در نهایت پس از نمایش تمامی ركوردهای موجود درrecordset ،‌ انتهای جدول با استفاده از تگ < table  /> مشخص می گردد .
    نمایش داده در ASP كلاسیك مستلزم انجام مراحل زیر است :

    • مرحله اول : ایجاد یك جدول به همراه عناوین ستون ها در خارج از حلقه تكرار 

    • مرحله دوم : ایجاد یك حلقه تكرار كه شرط خاتمه  آن رسیدن به انتهای ركوردهای موجود در Recordset است .

    • مرحله سوم : ایجاد یك سطر در حلقه تكرار كه شرایط نمایش یك ركورد را فراهم نماید .

    • مرحله چهارم : ایجاد ستون های مورد نظر در هر سطر و  نمایش فیلدهای داده بازیابی شده موجود در Recordset

    • مرحله پنچم: حركت اشاره گر به ركوردهای موجود در  recordset  به سمت جلو

    • مرحله ششم :  غیرفعال كردن اتصال ایجاد شده با بانك اطلاعاتی

    • مرحله هفتم  : بستن جدول پس از اتمام حلقه تكرار

    كد زیر نحوه انجام عملیات فوق ( دستیابی و نمایش داده)  در ASP  كلاسیك را نشان می دهد :

    نحوه دستیابی 

    <%
    Set adoCon = Server.CreateObject("ADODB.Connection")
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/../Test.mdb")
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "SELECT * FROM TestTable
    rs.Open strSQL, strCon

    نحوه نمایش 


    <table width="548"   height="20" >
    <tr>
       <td>
    عنوان ستون اول 
    </td>
       <td>
    عنوان ستون دوم
    </td>
    </tr>
     <%While (NOT rs.Eof)  %>
     <tr>
      <td><%=Rs("Field1")%></td>
      <td><%=Rs("Field2")%></td>
     </tr>
      <%
       rs.MoveNext
       WEND
      
    Set rs = Nothing
       Set adoCon = Nothing

    %>
    </table>

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

     ASP.NET 1.x
    ASP.NET 1.x ، نسبت به نسخه قبلی یعنی ASP كلاسیك با تغییرات گسترده ای ارائه گردید . از جمله تغییرات مهم در ارتباط با دستیابی و نمایش داده ، ارائه مجموعه كنترل هائی بود كه پیاده كنندگان می توانستند از آنان به منظور نمایش اطلاعات بازیابی شده از منابع داده استفاده نمایند . در این نسخه ، برای دستیابی به داده از امكاناتی نظیر بكارگیری كنترل های خاصی استفاده نمی گردید و عملا" روش های دستیابی داده در ASP.NET 1.x شباهت زیادی به نمایش داده در برنامه های نوشته شده با استفاده از ASP  كلاسیك داشت .
    همانگونه كه اشاره گردید ، در ASP  كلاسیك به منظور نمایش اطلاعات بازیابی شده از بانك های اطلاعاتی و سایر منابع داده ، پیاده كنندگان مجبور بودند كد لازم برای بازیابی و حركت بین ركوردهای بازیابی شده را نوشته و پس از تعریف یك فرمت مناسب ، محتویات مورد نظر را كه شامل اطلاعات بازیابی شده و تگ های Html است ،  بر اساس یك ساختار خاص تعریف شده توسط پیاده كننده در صفحات وب نمایش دهند . بدین منظور كنترل های سرویس دهنده خاصی كه از آنان با نام كنترل های نمایش اطلاعات و یا كنترل های داده وب نام برده می شود، ایجاد گردید . پیاده كننده گان با استفاده از كنترل های فوق قادر به نمایش اطلاعات بازیابی شده از منابع داده در صفحات وب بودند . كنترل های  DataGrid,DataList,Repeater و یا حتی  DropDownList نمونه هائی ‌از ساختارهای نمایش اطلاعات می باشند كه  استفاده از آنان مستلزم نوشتن كد زیادی نمی باشد  و با حداقل كد لازم می توان آنان را آماده نمایش اطلاعات مرتبط با یك منبع داده نمود . به عنوان نمونه ، پیاده كنندگان با استفاده از یك كنترل سرویس دهنده نمایش اطلاعات نظیر DataGrid لازم نبود كه خود را درگیر تگ های Html به منظور ایجاد یك جدول نمایند .
    همانگونه كه اشاره گردید ، یكی از مهمترین تغییرات ASP.NET 1.x نسبت به نسخه قبلی خود یعنی ASP ، ارائه كنترل های سرویس دهنده نمایش اطلاعات است كه این امكان را در اختیار پیاده كنندگان قرار می دهد تا با نوشتن حداقل كد لازم بتوانند داده مورد نظر را از هر نوع منبع داده بازیابی و با فرمت دلخواه و بهره گیری از پتانسیل های تگ های Html بر روی صفحات وب نمایش دهند . رویكرد فوق دو دستاورد مهم را برای پیاده كنندگان به دنبال داشت : 

    • با توجه به این كه به منظور نمایش اطلاعات بر روی صفحات وب به كد اندكی نیاز می باشد ، در وقت پیاده كنندگان صرفه جوئی می گردد.  

    • به مهارت اندكی به منظور نمایش اطلاعات برروی صفحات وب نیاز می باشد .

    در ASP.NET 1.x كنترل های سرویس دهنده نمایش اطلاعات و یا كنترل های داده وب ، یك الگوی مناسب به منظور نمایش داده را ارائه می نمایند  كه به نحوه تفسیر و نمایش داده در هر یك از كنترل های سرویس دهنده نمایش اطلاعات وابسته نخواهد بود . مثلا" داده موجود در  DataGrid در یك ساختار مشابه جدول متشكل از مجموعه ای سطر و ستون و یا در یك كنترل DropDownList  نمایش داده می شود . نحوه نسبت دهی داده به دو كنترل فوق مشابه می باشد و می بایست  خصلت DataSource آنان به درستی مقداردهی شود و با استفاده از متد DataBind عملیات نسبت دهی داده به كنترل مربوطه انجام شود .

    دستیابی داده
    همانگونه كه اشاره گردید ، برای دستیابی به داده از امكاناتی نظیر بكارگیری كنترل های خاصی استفاده نمی گردید و عملا" روش های دستیابی داده در ASP.NET 1.x شباهت زیادی به برنامه های نوشته شده با استفاده از ASP  كلاسیك دارد . دستیابی‌ داده در ASP.NET 1.x مستلزم انجام مراحل زیر است :

    • مرحله اول : ایجاد یك ارتباط با بانك اطلاعاتی و فعال نمودن  آن

    • مرحله دوم : تعریف یك query

    • مرحله سوم : ایجاد یك recordset

    • مرحله چهارم : نسبت دادن recordset به كنترل سرویس دهنده استفاده شده برای‌ نمایش اطلاعات

    • غیرفعال كردن ارتباط ایجاد شده با بانك اطلاعاتی و بستن  recordset

    نمایش داده
    برای نمایش اطلاعات بازیابی شده از منابع داده در ASP.NET 1.x ،‌ كنترل های سرویس دهنده نمایش اطلاعات متعددی نظیرDataGrid,DataList,Repeater ارائه شده است . با استفاده از كنترل های فوق علاوه بر امكان مدیریت آنان توسط برنامه در زمان پیاده كنندگان نیز صرفه جوئی می گردد . نمایش داده در ASP.NET 1.x مستلزم انجام مراحل زیر است :

    • تعریف یك كنترل سرویس دهنده نمایش اطلاعات و یا داده وب در بخش Html یك صفحه aspx .

    • اختصاص یك شناسه خاص به آن كه از طریق خصلت id انجام می شود .

    • نسبت دادن recordset بازیابی شده به خصلت DataSource كنترل در بخش Script یك صفحه aspx .

    • استفاده از متد DataBind كنترل سرویس دهنده نمایش اطلاعات به منظور انتشار داده بازیابی شده در كنترل از طریق بخش Script یك صفحه  aspx .

    كد زیر نحوه انجام عملیات فوق ( دستیابی و نمایش داده)  در ASP,NET 1.x را نشان می دهد :

     بخش اسكریپت

    نحوه دستیابی

    <%@ Import Namespace="System.Data.OleDb" %>

    <SCRIPT runat="server">
    Dim DBConnection As OleDbConnection
    Dim DBCommand As OleDbCommand
    Dim DBReader As OleDbDataReader
    Dim SQLString As String

    Sub Page_Load

    مرحله اول : ایجاد و فعال نمودن یك ارتباط بانك اطلاعاتی

    DBConnection = New OleDbConnection( _
    "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\Test\Test.mdb")
    DBConnection.Open()

     مرحله دوم : ایجاد یك query

    SQLString = "SELECT * FROM Students"
    DBCommand = New OleDbCommand(SQLString, DBConnection)

    مرحله سوم : ایجاد یك recordset

    DBReader = DBCommand.ExecuteReader()

    مرحله چهارم : نسبت دادن recordset به كنترل

    MyDataGrid.DataSource = DBReader
    MyDataGrid.DataBind()

    مرحله پنجم : غیرفعال كردن ارتباط ایجاد شده با بانك اطلاعاتی و بستن  recordset

    DBReader.Close()
    DBConnection.Close()
    End Sub


    </SCRIPT>

    بخش Html

    نحوه نمایش


    <Form runat="Server" >
     
    <asp:DataGrid id="MyDataGrid" runat="server"/>

    </form>
     

    با طولانی شدن این بخش از مقاله ، اجازه دهید بررسی نحوه دستیابی و نمایش داده در ASP.NET 2.0 را به بخش سوم واگذار نمائیم .





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


دوشنبه 27 شهریور 1396 08:03 ق.ظ
My brother suggested I might like this blog. He was totally right.
This post actually made my day. You can not
imagine just how much time I had spent for this information! Thanks!
شنبه 25 شهریور 1396 10:45 ب.ظ
Great information. Lucky me I recently found
your blog by accident (stumbleupon). I've saved as a favorite for later!
چهارشنبه 1 شهریور 1396 01:38 ب.ظ
I've read several just right stuff here. Definitely value bookmarking
for revisiting. I surprise how much effort you put to make any such magnificent informative web
site.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

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

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








جستجو

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