PDA

View Full Version : Paging



مهدی هادیان2
پنج شنبه 22 تیر 1391, 12:10 عصر
بسم الله الرحمن الرحیم با سلام خدمت همه دوستان برنامه ای که نوشتم قراره روی سرور نصب بشه و حدودا 15 تا 20 تا کلاینت در شهرهای دیگه داره. می خوام با استفاده از Paging تعدادی از رکوردها رو بیارم و در دیتا گرید نشون بدم. به نظرتون تاپ رو چند بگذارم؟ در ضمن بهترین کدی که می شه برای Paging نوشت به چه شکلی ست؟ اگه نمونه بگذارید ممنون میشم. با تشکر

ali_kolahdoozan
پنج شنبه 22 تیر 1391, 12:14 عصر
USE AdventureWorks
GO
DECLARE @StartRow INT
DECLARE @EndRow INT
SET @StartRow = 120
SET @EndRow = 140
SELECT FirstName, LastName, EmailAddress
FROM (
SELECT PC.FirstName, PC.LastName, PC.EmailAddress,
ROW_NUMBER() OVER(
ORDER BY PC.FirstName, PC.LastName,PC.ContactID) AS RowNumber
FROM Person.Contact PC) PersonContact
WHERE RowNumber > @StartRow
AND RowNumber < @EndRow
ORDER BY FirstName, LastName, EmailAddress
GO

حالا کافی است عدد ها رو از بیرون از طریق برنامت مدیریت کنی

مهدی هادیان2
پنج شنبه 22 تیر 1391, 12:50 عصر
با سلام
لطفا راجع به کدتون توضیح بدید.
در ضمن معمولا چند تا رکورد رو تو شرایط مشابه واکشی می کنند.
با تشکر

ali_kolahdoozan
پنج شنبه 22 تیر 1391, 12:55 عصر
با سلام
لطفا راجع به کدتون توضیح بدید.
در ضمن معمولا چند تا رکورد رو تو شرایط مشابه واکشی می کنند.
با تشکر

شما یک Table بسازید و 500 تا رکورد بریزید توش و این Query را براش Simulate کنید . همه چیز معلوم میشه

baktash.n81@gmail.com
پنج شنبه 22 تیر 1391, 13:20 عصر
البته اطلاعاتی که دادین مثل همیشه مختصر بود ... خیلی بستگی داره به تعداد ستون ها و نوع اطلاعات و از همه مهمتر اینکه پیشبینی شما از نیاز کلاینت چقدره ... مثلا اگه جستجو می کنه .. معمولا نتیجه جستجو شامل چنتا رکورد می شه و رکورد مورد نظر احتمال داره چندمین رکورد باشه ...
اما روشی که من توصیه می کنم ایجاد یک فایل یا جدول در بانک اطلاعاتی به عنوان Setting هست ... که بتونید این عدد رو از داخل اون عوض کنید بدون اینکه نیاز باشه Source رو مجدد کامپایل کنید ... و البته کلی تنظیمات دیگه رو هم می تونید داخلش قرار بدید ...

مهدی هادیان2
پنج شنبه 22 تیر 1391, 13:36 عصر
البته اطلاعاتی که دادین مثل همیشه مختصر بود ... خیلی بستگی داره به تعداد ستون ها و نوع اطلاعات و از همه مهمتر اینکه پیشبینی شما از نیاز کلاینت چقدره ... مثلا اگه جستجو می کنه .. معمولا نتیجه جستجو شامل چنتا رکورد می شه و رکورد مورد نظر احتمال داره چندمین رکورد باشه ...
اما روشی که من توصیه می کنم ایجاد یک فایل یا جدول در بانک اطلاعاتی به عنوان Setting هست ... که بتونید این عدد رو از داخل اون عوض کنید بدون اینکه نیاز باشه Source رو مجدد کامپایل کنید ... و البته کلی تنظیمات دیگه رو هم می تونید داخلش قرار بدید ...
نیاز کلاینت رو نمی تونم پیش بینی کنم. بنده فرمی دارم به اسم مدیریت فاکتورها که موقع لود همه فاکتورها رو نمایش می ده و بعد کاربر می تونه براساس تاریخ و شماره و ... جستجو کنه. البته بعد از هر جستجو کل اطلاعات نمایش داده می شه.

مهدی هادیان2
پنج شنبه 22 تیر 1391, 20:10 عصر
با سلام
لطفا به مقاله زیر نگاهی بیندازید. می خوام از توش یه SP در بیارم که برای صفحه بندی همه سلکت ها استفاده کنم. ان شاالله
http://www.sqlservercentral.com/articles/T-SQL/66030/
با تشکر

Galawij
جمعه 23 تیر 1391, 11:19 صبح
سلام،
من این مورد رو در این لینک (http://barnamenevis.org/showthread.php?329654-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D9%86%D8%AF%DB%8C&highlight=Paging) آوردم.

مهدی هادیان2
جمعه 23 تیر 1391, 23:43 عصر
سلام،
من این مورد رو در این لینک (http://barnamenevis.org/showthread.php?329654-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D9%86%D8%AF%DB%8C&highlight=Paging) آوردم.
با سلام
از پاسختون بینهایت ممنون
یه سوالی از خدمتتون داشتم؛ بهتر است مثل شما تمام SP هام رو تغییر بدم یا با توجه به فرمایش جناب baktash یه جدول ستینگ بسازم و هر بار از اون مقدار @PageNumber رو از اون واکشی کنم.
با تشکر

Galawij
شنبه 24 تیر 1391, 07:48 صبح
یه سوالی از خدمتتون داشتم؛ بهتر است مثل شما تمام SP هام رو تغییر بدم یا با توجه به فرمایش جناب baktash یه جدول ستینگ بسازم و هر بار از اون مقدار @PageNumber رو از اون واکشی کنم.
سلام دوست عزیز،
تو کدی که من براتون گذاشتم مقادیر دو پارامتر از ورودی دریافت می شه، مقدار پارامتر pageNumber که بر اساس شماره صفحه گرید از سمت برنامه تعیین می شه ولی برای مقدار پارامتر PageSize بهتره اونو از جدول تنظیمات کاربری بگیرید، این طوری برای هر کاربر این عدد سفارشی می شه و قابل تغییر.
موفق باشید.