Forum PersianCoder

زمان کنونی: ۴/۱۲/۱۳۹۰, ۰۳:۳۸ عصر درود کاربر مهمان (ورودثبت نام)




ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
صفحه بندی اطلاعات در SqlServer  
نویسنده پیام
Rasoul آفلاین
ادمین سایت
*******

ارسال ها: 108
تاریخ عضویت: ارد ۱۳۸۹
اعتبار: 3
سپاس ها 13
سپاس شده 80 بار در 11 ارسال
ارسال: #1
صفحه بندی اطلاعات در 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;
در این دستور ما تمامی سطرهایی که شماره سطر آنها بین ۰ الی ۱۰ بود را انتخاب کردیم.
۲۱/۲/۱۳۹۰ ۰۹:۴۵ صبح
یافتن تمامی ارسال های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:

Powered by MyBB | Copyright © 2010 MyBB Group
Element Blue by MyBB Mod