دوشنبه ۲۷ دی ۱۳۹۵
 
 
 
کلمه عبور خود را فراموش کرده اید؟
 

 
 
 صفحه بندی اطلاعات در SqlServer
Database / LINQ / EF
تاریخ ثبت:  ۹۰/۱/۲۲
تعداد نمایش:  ۵۹۴۱
  نویسنده: امير حسين محمدپور اوجور
 
   ۲۱  نفر تا این لحظه به این مقاله امتیاز داده اند.
 
   Bookmark and Share

صفحه بندی اطلاعات در SqlServer

اکثربرنامه نویس هایی که تحت Asp.net به طراحی صفحات وب مشغول هستند حتما با کنترل GridView برخورد کرده اند.
این کنترل دارای یک ویژگی جالب می باشد.و آن هم امکان صفحه بندی اطلاعات است.

در این مقاله نحوه پیاده سازی تکنیک صفحه بندی را بیان خواهیم کرد.

 کلیات کار به صورت زیر می باشد :
۱- بدست آوردن شماره سطرهای یک پرس و جو
۲- انتخاب سطرهایی که بین یک محدوده از اعداد هستند (مثلا بین ۰ تا ۱۰   یا   بین ۱۰ تا ۲۰   و یا هر عددی دیگری)

  >> انتخاب سطرهای داخل یک محدوده به منزله انتخاب صفحه مورد نظر می باشد. اگر فرض کنیم که هر صفحه ما دارای ۱۰ سطر می باشد پس سطرهایی که بین ۳۰ الی ۴۰ هستند در صفحه چهارم قرار خواهند گرفت.


ما کار صفحه بندی را به سه قسمت تقسیم می کنیم :
۱- شماره گذاری هر سطر
۲- اعمال شرط یا شروط مورد نظر بر روی پرس و جو
۳- انتخاب صفحه مورد نظر


قسمت اول : شماره گذاری هر سطر
جهت بدست آوردن شماره هر سطر از روش زیر عمل می کنیم :

در T-Sql شما می توانید از کلمه RowNumber جهت بدست آوردن شماره یک سطر در هنگام نمایش پرس و جو بهره بگیرید.
نحوه استفاده از آن به این صورت می باشد.
SELECT  ROW_NUMBER () OVER (ORDER BY [ID] DESC ) AS 'RowNumber', ID, Name, Family
FROM tblUser


ساختار دستور  ()Row_Number به صورت
ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )
می باشد.
            در این مثال
ROW_NUMBER () OVER (ORDER BY [ID] DESC ) AS RowNumber
> قسمت زرد رنگ نام فیلدی که شماره گذاری بر اساس آن انجام می شود.
> قسمت آبی رنگ نوع مرتب سازی که می تواند صعودی یا نزولی باشد.
> قسمت قرمز رنگ مه نام این فیلد جدید می باشد (چون شماره سطر به صورت یک فیلد اضافه در هر سطر پرس و جو ظاهر خواهد شد)


قسمت دوم : اعمال شرط یا شروط مورد نظر
بر روی پرس و جو

حال نوبت به اعمال شروط مورد نظر می رسد.
به طور مثال :‌شما می خواهید اطلاعات تمام افرادی که نام آنها علی می باشد را نمایش دهید.
SELECT  ROW_NUMBER () OVER (ORDER BY [ID] DESC ) AS 'RowNumber', ID, Name, Family
FROM tblUser
WHERE  Name = 'ALI'


قسمت سوم : انتخاب صفحه مورد نظر

حال صفحه مورد نظر را انتخاب می کنیم.
برای این کار نیاز به دستور WITH داریم. (می توانید توضیحات کامل در مورد این دستور را سایت Microsoft دریافت کنید)

WITH myResult AS
)
SELECT  ROW_NUMBER () OVER (ORDER BY [ID] DESC ) AS 'RowNumber', ID, Name, Family
FROM tblUser
WHERE  Name = 'ALI'
)

SELECT * FROM myResult
WHERE RowNumber BETWEEN 0 AND 10;

در این دستور ما تمامی سطرهایی که شماره سطر آنها بین ۰ الی ۱۰ بود را انتخاب کردیم.



منابع :‌
http://msdn.microsoft.com/en-us/library/ms186734.aspx

  کیفیت مقاله ارائه شده از نظر شما   
برای دادن رتبه به این مقاله می بایست Login کرده باشید.
  درباره نویسنده
امير حسين محمدپور اوجور
من الان توي سربازي هستم اما مي تونم هز چند وقتي به اين سايت سر بزنم!
همه مقاله های نوشته شده توسط این کاربر (۱)
 
  پیام جدید
صفحه ۱ - پیامهای اصلی ۱ تا ۱ از مجموع ۱ پیام اصلی
اولین قبلی بعدی

 عنوان فرستنده تاریخ
 
تشکر محمود پلنگي ۱۳۹۰/۷/۱۴
اولین قبلی بعدی

Copyright © 2006 - 2016 All Rights Reserved.
Please direct your questions or comments to