نمایش نتایج 1 تا 8 از 8

نام تاپیک: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

  1. #1

    آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    سلام .

    در مورد Custom Paging & Sorting بارها و بارها در این سایت بحث شده . بخشی از آنها مربوط به Sql2000 هست و بخش دیگری از آنها که در مورد Sql2005 هست تنها در مورد Paging بحث شده و بیشتر به نحوه پیاده سازی StoredProcedure پرداخته شده . و هنوز ابهامات زیادی دراین مورد باقی مونده.
    من قصد دارم در این مقاله به طور مفصل به صورت گام به گام به Sorting و Paging در سطح دیتابیس بپردازم .

    در انتها فایل پروژه ضمیمه شده که همراه با آن فایل دیتابیس با 50 هزار رکورد موجود است و در آنجا تفاوت سرعت و کارایی را مشاهده خواهید کرد . کد با دات نت 2.0 نوشته شده پس میتوانید با VS 2005 , VS 2008 استفاده کنید . و برای اجرای تنظیمات خاصی لازم نیست و تنها کافیه Ctr + F5 بزنید .
    همچنین مثال به صورت معماری 3 لایه پیاده سازی شده تا دوستان تازه کار هم با آن آشنا شوند .

    Paging:

    اهمیت Paging بر هیچ کس پوشیده نیست . مواقعی هست که منطقی نیست همه رکوردها رو یکجا به کاربر نشون بدیم . خوب پس باید Paging رو اعمال کنیم . این کار چندین جا امکان پذیر هست :
    یک روش میتونه Client Side Paging باشه که توسط جاوا اسکریپت اینکار رو میکنیم .
    اینجا چند تا نمونه هست که میتونید دنبال کنید که از حوزه بحث ما خارجه .
    Client-side Paging for DataGrids
    Client Side Table Sorting, Paging and Filtering with jQuery

    همچنین Paging میتونه درBusiness Layer رخ بده . در این حالت شما یک لیستی از آبجکتها رو از DataSource میخونید و اونا رو Paging میکنید که من در پروژه ضمیمه اون رو پیاده سازی کردم ولی این مبحث نیز مربوط به بحث این مقاله نیست .

    همچنین اگه تعداد رکوردها کم باشه میتونیم از DataSet استفاده کنیم . در صورت استفاده از DataSet ما میتوانیم از ویژگیهای Built-In داخل GridView و ListView , FormView , DetailsView برای Paging and Sorting استفاده کنیم . ولی همانطور که میدونید در صورتی که از DataSet استفاده کنیم عملا در ابتدا همه رکوردها واکشی میشوند . فرض کنید کوئری ما 50 هزار رکورد رو برمیگردونه و ما PageSize کنترلGridView رو برابر 10 قرار بدیم . در این صورت ابتدا همه 50 هزار رکورد در حافظه لود شده ولی تنها 10 تای اول رو نشون میده . پس عملا میشه گفت Paging ما مجازی هست . البت%D
    آخرین ویرایش به وسیله Mostafa_Dindar : شنبه 02 بهمن 1389 در 14:53 عصر

  2. #2

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه کد برای دانلود

    حال که Sproc ما کامل شد بهتره به کدهامون در ASP.NET برگردیم .

    کد من در لایه دیتا خیلی سادست . از لایه تجاری فراخوانی میشه و پارامتر ها رو میگیره و رکوردهای متناسب برمیگردونه

    در لایه Bll هم کار خاصی صورت نمیگیره تنها با پارمترهای متفاوت Dal رو فراخوانی میکنه


            [DataObjectMethod(DataObjectMethodType.Select, false)]
    public static EmployeesCollection SelectListByDepartmentID(int departmentID,int startRowIndex, int maximumRows, string sortExpression)
    {
    if (departmentID == 0)
    return SelectAll(startRowIndex, maximumRows, sortExpression);
    else
    return EmployeesDB.SelectListByDepartmentID( departmentID, startRowIndex, maximumRows, sortExpression);
    }

    public static int SelectListByDepartmentIDCount(int departmentID , int startRowIndex, int maximumRows, string sortExpression)
    {
    System.Web.HttpContext context = System.Web.HttpContext.Current;
    if (departmentID == 0)
    {
    if (context.Cache["SelectAllCount"] == null)
    context.Cache["SelectAllCount"] = EmployeesDB.SelectAllCount();
    return (int)context.Cache["SelectAllCount"];
    }
    else
    {
    return EmployeesDB.SelectListByDepartmentIDCount(departme ntID);
    }
    }


    قسمت اعظم کار ما انجام شده و تنها کافی هست یک Gridview در فرم قرار داده به ObjectDataSource ای که رکورد های رو بر میگردونه Bind کنیم :

        <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
    DataObjectTypeName="MD.TestPagingData.BusinessEnti ties.Employees"
    DeleteMethod="Delete" EnablePaging="True" InsertMethod="Insert"
    OldValuesParameterFormatString="original_{0}"
    SelectCountMethod="SelectListByDepartmentIDCount"
    SelectMethod="SelectListByDepartmentID" SortParameterName="sortExpression"
    TypeName="MD.TestPagingData.Bll.EmployeesManager" UpdateMethod="Update">
    <SelectParameters>
    <asp:ControlParameter ControlID="DropDownList1" Name="departmentID"
    PropertyName="SelectedValue" Type="Int32" DefaultValue="0" />
    <asp:Parameter Name="startRowIndex" Type="Int32" />
    <asp:Parameter Name="maximumRows" Type="Int32" />
    <asp:Parameter Name="sortExpression" Type="String" />

    </SelectParameters>
    </asp:ObjectDataSource>
    دقت کنید که ObjectDataSource پارامتر هایی بنام MaximumRowsParameterName , StartRowIndexParameterName دارد که به طورپیش فرض مقادیر زیر را دارند :
    maximumRowsو startRowIndex. چنانچه در Bll متد شما نام پارمترهایش متفاوت بود باید این Property ها رو مقدار دهی کنید مثلا :
    MaximumRowsParameterName="RowMax"
    StartRowIndexParameterName="RowIndexStart"
    کار دیگری نمونده که انجام بدیم . پروژه رو ميتونيد دانلود كنيد .
    امیدوارم تونسته باشم کمکی کرده باشم .

    موفق باشید

    دانلود
    آخرین ویرایش به وسیله Mostafa_Dindar : شنبه 02 بهمن 1389 در 14:52 عصر دلیل: اصلاح لینک دانلود

  3. #3

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    کاربر shocraneh@
    لطفاً فقط در حوزه ی تاپیک مربوطه بحث کنید. این چندمین بار هست که این تذکر به شما داده میشه.

    متشکرم.

  4. #4

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    لطفا یه لینک جدید برای دانلود بزارید
    این کار نمی کنه!!!!!!!!!!!

  5. #5
    کاربر دائمی آواتار grobech
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    جایی که بشه نفس کشید
    پست
    162

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    سلام
    اگر کسی کد رو از قبل برداشته لطفا بزاره
    متشکرم

  6. #6
    کاربر دائمی آواتار moferferi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    39
    پست
    788

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    جناب اقای دیندار من از روش زیر که در مدل entity هست واسه paging استفاده میکنم.
    نظرتون نسبت به روشی که شما مثال زدین چیه.از لحاظ سرعت و کارایی تفاوتی داره.؟
    int index = 0;
    if (Request["pagenumber"] != null)
    {
    index = Int32.Parse(Request["pagenumber"]);
    }
    int skip=index*5;
    WebDBEntities db = new WebDBEntities();
    var lst = (from s in db.Products
    orderby s.Id
    select s).Skip(skip).Take(5);

    Repeater1.DataSource = lst;
    Repeater1.DataBind();

  7. #7

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    نقل قول نوشته شده توسط moferferi مشاهده تاپیک
    جناب اقای دیندار من از روش زیر که در مدل entity هست واسه paging استفاده میکنم.
    نظرتون نسبت به روشی که شما مثال زدین چیه.از لحاظ سرعت و کارایی تفاوتی داره.؟
    int index = 0;
    if (Request["pagenumber"] != null)
    {
    index = Int32.Parse(Request["pagenumber"]);
    }
    int skip=index*5;
    WebDBEntities db = new WebDBEntities();
    var lst = (from s in db.Products
    orderby s.Id
    select s).Skip(skip).Take(5);

    Repeater1.DataSource = lst;
    Repeater1.DataBind();
    تفاوتی ندارند . در واقع لینک با استفاده از Skip و Take همان Custom Paging را انجام میدهد .

  8. #8

    نقل قول: آموزش Custom Paging & Sorting در Sql2005 همراه با نمونه كد براي دانلود

    سلام
    لینک دانلود خراب شده،میشه لطفا دوباره بذارید

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

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