نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: چهار روش برای نمايش محتوای DataSet در فرمهای وب

  1. #1
    عضو انجمن toltek آواتار ها
    تاریخ عضویت
    Aug 2014
    نوشته ها
    200
    تشکر تشکر کرده 
    184
    تشکر تشکر شده 
    182
    تشکر شده در
    141 پست

    پیش فرض چهار روش برای نمايش محتوای DataSet در فرمهای وب

    با سلام
    در مقاله ی پیش رو قصد داریم تا نحوه ی نمایش اطلاعات در دیتاست ها رو توضیح بدیم
    در ADO.NET دو روش برای کار با داده ها وجود دارد: DataSet و DataReader. هر کدام از اين دو روش موارد استفاده خود را دارند. اگر هدف نشان دادن سريع داده هاست DataReader مناسب تر از DataSet می باشد ولی اگر قصد انجام عملياتی بر روی داده ها داريد و لازم است داده ها در حافظه مقيم شوند بايد از DataSet استفاده کنيد. در اين مقاله چهار روش برای نمايش محتوای يک DataSet در فرمهای وب بيان می شود.

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

    در اين مقاله چهار روش برای نمايش محتوای يک DataSet در فرمهای وب بيان می شود:

    ۱- استفاده از کنترل DataGrid
    ۲- استفاده از کنترل DataList
    ۳- استفاده از کنترل Repeater
    ۴- استفاده از يک متغير

    هر DataSet می تواند يک يا چندين DataTable را شامل شود. برای وارد کردن داده ها به داخل DataSet نياز به استفاده از يک DataAdapter داريم. انجام مراحل زير برای وارد کردن داده ها در DataSet اساسی هستند:

    • ايجاد يک Connection به پايگاه داده:

    کد:
    Dim strConn as string = “initial catalog=Northwind;integrated security=SSPI;persist security info=False;workstation id=DOTNET"
    Dim MyConn as New SQLConnection(strConn)


    • ايجاد DataSet:

    کد:
    Dim ds as DataSet=New DataSet()



    • ايجاد DataAdapter:

    کد:
    Dim MySQL as string = "Select Employees.FirstName, Employees.LastName, Employees.Title from Employees"
    Dim da as New SQLDataAdapter(MySQL,MyConn)

    • بعد از انجام اين مراحل متد Fill از شئ DataAdapter را فراخوانی می کنيم:

    کد:
    da.Fill(ds,"Employees")

    پارامتر اول در اين متد نام DataSet و پارامتر دوم نام DataTable جديدی است که می خواهيم تعريف کنيم.

    اکنون DataSet شامل داده هايی می باشد که از DataAdapter به داخل آن انتقال يافته اند. برای نشان دادن داده های داخل DataSet از يکی از روشهای زير استفاده می کنيم:


    ۱- کنترل DataGrid

    با استفاده از کد زير می توان جدول Employees را (که در داخل DataSet قرار دارد) در DataGrid نشان داد:

    کد:
    MyDataGrid.Datasource=ds.Tables("Employees").Defau  ltView
    MyDataGrid.DataBind()
    همانطور که مشاهده می کنيد ابتدا با مشخص نمودن خصوصيت Datasource کنترل DataGrid - که جدول Employees واقع در DataSet می باشد - داده ها به داخل DataGrid انتقال می يابند و سپس با فراخوانی متد DataBind داده ها بر روی صفحه نشان داده می شوند.


    ۲- کنترل DataList

    برای مقيد کردن داده ها بر روی کنترلهای DataList و Repeater نيز همانند کنترل DataGrid می توانيد کدهای زير را بکار ببريد:

    کد:
    MyDataList.Datasource=ds.Tables("Employees").Defau  ltView
    MyDataList.DataBind()


    ۳- کنترل Repeater

    کد:
    MyRepeater.datasource = ds.Tables("Employees").DefaultView
    MyRepeater.DataBind()

    کنترلهای DataGrid ،DataList و Repeater کنترلهای DataBound نام دارند. کنترلهای DataBound امکان تنظيم منابع داده را به صورت Programmatically فراهم می کنند. اين کنترلها بعد از تنظيم منبع داده ای بر روی آن تکرار شده و بر اساس فرمت تعيين شده برای کنترل، داده ها را نمايش می دهند. فرمت فقط برای يک سطر مشخص می شود و همه سطرها بر اساس آن نشان داده می شوند.

    این که کدام کنترل را برای نمايش داده ها انتخاب کنيد به اين بستگی دارد که می خواهيد چه مقدار کنترل بر روی فرمت نمايش داده ها داشته باشيد. کنترل DataGrid آسانترين و ساده ترين راه برای به نمايش درآوردن داده ها در قالب يک جدول است. Visual Studio .NET هم قالب های آماده ای را از طريق گزينه Auto Format برای تغيير ظاهری کنترل DataGrid (و همچنين DataList) در اختيار ما قرار می دهد. DataList کمی پيچيده تر از DataGrid است ولی امکان کنترل زيادی را در رابطه با فرمت بندی از طريق استفاده از الگوها فراهم می کند. کنترل Repeater نسبت به DataList هم پيچيده تر است و می توان کنترل خيلی بيشتری را هنگام استفاده از الگوها بر روی فرمت نمايش داده ها اعمال نمود.

    به دليل اين که کنترلهای DataList و Repeater به طور پيش فرض فرمت داخلی ندارند هنگام تعريف بايد آنها را فرمت بندی نماييم (فرمت کنترل DataGrid را هم می توان تغيير داد ولی اگر تغيير ندهيم مشکلی پيش نمی آيد و داده ها نمايش داده می شوند). به عنوان نمونه برای کنترل DataList می توان چنين نوشت:


    کد:
        
    <asp:DataList id="MyDataList" runat="server" GridLines="None"  cellpadding="2" cellspacing="2" Headerstyle-BackColor="#8080C0"  Headerstyle-Font-Name="Arial" Headerstyle-Font-Size="8"  Font-Name="Arial" Font-Bold="false" Font-Size="8">
        <ItemTemplate>
             <%# DataBinder.Eval(Container.DataItem, "firstname") %> <%#  DataBinder.Eval(Container.DataItem, "lastname") %> -  <b><i><%#DataBinder.Eval(Container.DataItem, "Title")  %> </i></b> 
        </ItemTemplate>
    </asp:DataList>

    DataBinder.Eval متدی است که برای ارزيابی عبارات data-binding در زمان اجرا از آن استفاده می شود. ساختار اصلی اين متد به صورت زير است:


    کد:
    <%# DataBinder.Eval(Container, EvalExpression, FormatExpression) %>


    Container عبارتی را بيان می کند که می خواهيم ارزيابی کنيم، برای کنترلهای DataBound هميشه مقدار Container.DataItem را به جای Container قرار می دهيم. EvalExpression نام خصوصيت يا آيتمی است که بايد ارزيابی شود و FormatExpression يک عبارت با فرمت رشته ای است که برای فرمت کردن نتيجه که يک رشته است استفاده می شود.


    ۴- استفاده از متغير برای نشان دادن محتوای DataSet

    برای نشان دادن محتوای DataSet می توان تکنيک استفاده از متغير را بکار برد. برای اين کار ابتدا محتوای DataSet را در يک متغير از نوع String قرار می دهيم. کد لازم برای انجام اين کار به صورت زير است:

    کد:
    Dim sEmps as String
    Dim dr As DataRow
    For Each dr In ds.Tables("Employees").Rows
        sEmps += "<b>" & dr("firstname") & " " & dr("lastname") & " </b> - " & dr("Title") & ""
    Next
    روشی که در اينجا استفاده شده است پيمايش تمام سطرهای جدول مورد نظر با استفاده از يک حلقه For Each … Next است که همه آنها را در داخل متغير از نوع String قرار می دهد. سپس خصوصيت text يک کنترل literal را برابر اين متغير قرار می دهيم:

    کد:
    litEmps.text=sEmps

    همیشه خندان باشید
    مرتضی پورمحمد
    02166359898 - 09122830795
    telegram : @VProgrammer

  2. تعداد تشکر ها از toltek به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو انجمن SixthElement آواتار ها
    تاریخ عضویت
    Aug 2013
    نوشته ها
    269
    تشکر تشکر کرده 
    258
    تشکر تشکر شده 
    442
    تشکر شده در
    263 پست

    پیش فرض پاسخ : چهار روش برای نمايش محتوای DataSet در فرمهای وب

    در تکمیل فرمایش دوست عزیز باید بگم سرعت فراخوانی اطلاعات با datareader بسیار سریعتر از dataset هستش ولی با این ضعف که امکان بازگشت به رکورد خوانده شده با datareader پس از fetch کردن وجود نداره.

    Sent from my SM-N910H using Tapatalk

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. درخواست افزونه پیش فاکتور و فاکتور وردپرس
    توسط Jai در انجمن درخواست انواع ماژول،پلاگین،قالب،امکانات سفارشی
    پاسخ ها: 2
    آخرين نوشته: February 13th, 2017, 10:36
  2. پاسخ ها: 21
    آخرين نوشته: June 11th, 2016, 12:59
  3. پاسخ ها: 0
    آخرين نوشته: December 26th, 2015, 11:40
  4. توجه توجه .نویسندگی سایت های جور وا جور .توجه توجه
    توسط ko9ol30 در انجمن به دنبال کار هستم
    پاسخ ها: 0
    آخرين نوشته: June 20th, 2015, 12:21
  5. درخواست سرور مجازی ویندوز برای تورنت و تورنت دادن و گرفتن
    توسط Daniel4u در انجمن درخواست سرور مجازی
    پاسخ ها: 9
    آخرين نوشته: September 21st, 2012, 11:24

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •