hamed_hossani
سه شنبه 08 مرداد 1392, 13:35 عصر
سلام
قبلا نوشته شده بود ولی کدش کوری SQL بهینه نبود
یکی از موضوعاتی که معمولا برنامه نویسان محیط ASP.NET با آن مواجه هستند صفحه بندی اطلاعات دریافتی از دیتابیس درون GridView است ( که براحتی قابل انجام هست) . از طرفی در بسیاری از مواقع دوست داریم اطلاعات رو در بیش از یک ستون نمایش دهیم که مجبوریم از کنترل DataList استفاده کنیم چون GridView خاصیت RepeatColumns رو نداره و دقیقا مشکل همین جاست زیرا DataList هم خاصیت paging رو نداره . بنابراین برای استفاده از هر دو خاصیت RepeatColumns و paging به مشکل بر خواهیم خورد .
منبع (http://barnamenevis.org/showthread.php?304184-%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-paging-%D8%A8%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-DataList&highlight=paging+datalist)
و query Sql بهینه شده :
SELECT top (10) id,mytext,des from
(
SELECT RowID = ROW_NUMBER() OVER (ORDER BY id), TotalRows=Count(*) OVER(),id,mytext,des
FROM tb1
)
A where A.RowId> ((1)*10)
در هر صفحه 10 مورد نشان می دهد
SELECT top 10
در شرط
A where A.RowId> ((1)*10)
1 شماره صفحه است که قراره نشان داده بشه، که از صفر شروع میشه 0و1و2و3و...
و 10 همان تعداد ایتم هایی است که در هر صقحه نشون داده میشه
برای جذول tb1 با ستون های id,mytext,des
قبلا نوشته شده بود ولی کدش کوری SQL بهینه نبود
یکی از موضوعاتی که معمولا برنامه نویسان محیط ASP.NET با آن مواجه هستند صفحه بندی اطلاعات دریافتی از دیتابیس درون GridView است ( که براحتی قابل انجام هست) . از طرفی در بسیاری از مواقع دوست داریم اطلاعات رو در بیش از یک ستون نمایش دهیم که مجبوریم از کنترل DataList استفاده کنیم چون GridView خاصیت RepeatColumns رو نداره و دقیقا مشکل همین جاست زیرا DataList هم خاصیت paging رو نداره . بنابراین برای استفاده از هر دو خاصیت RepeatColumns و paging به مشکل بر خواهیم خورد .
منبع (http://barnamenevis.org/showthread.php?304184-%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-paging-%D8%A8%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-DataList&highlight=paging+datalist)
و query Sql بهینه شده :
SELECT top (10) id,mytext,des from
(
SELECT RowID = ROW_NUMBER() OVER (ORDER BY id), TotalRows=Count(*) OVER(),id,mytext,des
FROM tb1
)
A where A.RowId> ((1)*10)
در هر صفحه 10 مورد نشان می دهد
SELECT top 10
در شرط
A where A.RowId> ((1)*10)
1 شماره صفحه است که قراره نشان داده بشه، که از صفر شروع میشه 0و1و2و3و...
و 10 همان تعداد ایتم هایی است که در هر صقحه نشون داده میشه
برای جذول tb1 با ستون های id,mytext,des