"

صفحه‌ بندی دیتا گرید ویو در سی‌شارپ

زهیر صفری 1404/08/27 0 18
لینک کوتاه http://zoheirsoftware.com/z/395c05f43 |
آموزش صفحه‌بندی DataGridView در سی‌شارپ,پیاده‌سازی Paging در دیتاگرید ویو C#, روش‌های صفحه‌بندی DataGridView در C#

مقدمه

در برنامه‌های ویندوز فرم، کنترل DataGridView نقش اصلی را در نمایش و مدیریت داده‌ها بر عهده دارد.

اما زمانی که حجم اطلاعات افزایش پیدا می‌کند (مثل زمانی که هزاران رکورد قرار است در یک جدول نشان داده شوند) محیط برنامه کند شده و دسترسی کاربر به اطلاعات موردنظر دشوار می‌شود.

صفحه‌‌بندی دیتا گرید ویو در سی‌شارپ روشی موثر برای سبک‌تر کردن رابط کاربری و افزایش سرعت بارگذاری داده‌ها محسوب می‌شود.

 استفاده از این تکنیک می‌توان اطلاعات را در قالب چند صفحه منظم ارائه کرد تا هم عملکرد برنامه بهبود یابد و هم کاربر بتواند داده‌ها را سریع‌تر و دقیق‌تر مرور کند.

 صفحه‌ بندی دیتا گرید ویو در سی‌شارپ چیست؟

زمانی که تعداد رکوردها در DataGridView بسیار زیاد باشد، بارگذاری همه داده‌ها به‌صورت یکجا باعث کندی عملکرد برنامه و دشواری جستجوی اطلاعات برای کاربر می‌شود.

استفاده از صفحه‌بندی، داده‌ها را به صفحات کوچک‌تر تقسیم می‌کند تا هر بخش به‌صورت جداگانه بارگذاری شود؛ این کار نه تنها سرعت نمایش را افزایش می‌دهد، بلکه تجربه کاربری را بهبود بخشیده و مدیریت داده‌ها را ساده‌تر و دقیق‌تر می‌کند.

 کاربردهای صفحه‌بندی  DataGridView در سی‌شارپ

صفحه‌بندی در DataGridView نه تنها باعث بهبود سرعت و عملکرد می‌شود، بلکه امکان استفاده از داده‌های حجیم را در پروژه‌های واقعی فراهم می‌کند.

این تکنیک در انواع برنامه‌های ویندوز فرم و پروژه‌های سازمانی کاربرد گسترده‌ای دارد و کار مدیریت اطلاعات را برای کاربران آسان‌تر می‌کند.

 کاربرد اصلی استفاده از صفحه‌بندی DataGridView

 نرم‌افزارهای حسابداری و مالی

نمایش تراکنش‌ها، فاکتورها و صورت‌حساب‌ها به‌صورت صفحه‌بندی شده.

 سیستم‌های مدیریت کاربران و ثبت‌نام

مرور لیست کاربران، مشتریان یا دانشجویان در صفحات جداگانه.

 برنامه‌های انبارداری و مدیریت موجودی

نمایش موجودی کالاها و گزارشات انبار در قالب صفحات قابل مدیریت.

 گزارش‌گیری و تحلیل داده‌ها

ارائه داده‌های بزرگ آماری یا لاگ‌های سیستم با امکان پیمایش سریع بین صفحات.

 نمایش داده‌های تاریخی یا تراکنش‌های آنلاین

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

 کاربردهای صفحه‌بندی دیتا گرید ویو در سی‌شارپ

 مزایای استفاده از صفحه‌ بندی دیتا گرید ویو در سی‌شارپ

قبل از ورود به آموزش، باید بدانید که صفحه‌بندی چه مزیت‌هایی دارد.

صفحه‌بندی باعث می‌شود DataGridView فقط بخشی از داده‌ها را بارگیری کند و به همین دلیل عملکرد بسیار سریع‌تری نسبت به نمایش همه رکوردها دارد.

این کار مخصوصاً در پروژه‌های سازمانی با دیتابیس‌های بزرگ اهمیت زیادی دارد.

 مزایای صفحه‌بندی دیتا گرید ویو

  1.   افزایش سرعت بارگذاری حتی با 50 هزار رکورد
  2.   کاهش مصرف RAM
  3.   بهبود تجربه کاربری و کار آسان‌تر با داده‌ها
  4.   نمایش محتوا به‌صورت مرتب و قابل مدیریت
  5. کنترل بیشتر روی داده‌های نمایش‌داده‌شده

 مفهوم صفحه‌بندی DataGridView در سی شارپ

وقتی حجم داده‌ها در یک DataGridView افزایش پیدا می‌کند، لازم است داده‌ها را به بخش‌های کوچک‌تر تقسیم کنیم تا هم سرعت بارگذاری بالاتر برود و هم کاربر راحت‌تر بتواند اطلاعات را مدیریت کند.

صفحه‌بندی در سی‌شارپ دقیقاً همین وظیفه را بر عهده دارد و با نمایش کنترل‌شده‌ی رکوردها، تجربه کاربری سازمان‌یافته‌تری ایجاد می‌کند.

 مراحل ساده پیاده‌سازی صفحه‌بندی

1. مشخص‌کردن تعداد کل رکوردها
2. تعیین تعداد آیتم‌ها برای هر صفحه
3. دریافت داده‌های مربوط به صفحه فعلی
4. بارگذاری داده‌ها در DataGridView

 آموزش صفحه‌بندی دیتاگرید ویو در سی شارپ

برای اینکه صفحه‌بندی را به‌صورت اصولی در DataGridView پیاده‌سازی کنید، لازم است ابتدا بدانید که این کار می‌تواند هم در لایه‌ی منبع داده و هم در خود رابط کاربری انجام شود.

انتخاب روش مناسب به حجم داده‌ها و معماری پروژه بستگی دارد و همین موضوع اهمیت یادگیری دقیق هر دو روش را افزایش می‌دهد.

 روش‌های اصلی صفحه‌بندی در سی‌شارپ

صفحه‌بندی در سی شارپ می‌تواند به دو روش کلی انجام شود:
۱. صفحه‌بندی در منبع داده (دیتابیس)
۲. صفحه‌بندی در سطح UI (خود DataGridView)
بهترین روش، صفحه‌بندی در لایه دیتابیس است؛ اما در پروژه‌های کوچک، روش دوم نیز کاربرد دارد.

 آموزش صفحه‌بندی دیتاگرید ویو در سی شارپ

 

روش اول: صفحه‌بندی در DataGridView بدون دیتابیس (ساده‌ترین روش)

این روش برای زمانی مناسب است که داده‌های شما در فایل، لیست، مجموعه آبجکت‌ها یا DataTable قرار دارد و قصد دارید صفحه‌بندی را فقط در همان لایه‌ی نمایش پیاده‌سازی کنید.

 مراحل اجرای کار:

1. تعیین تعداد رکوردها در هر صفحه (pageSize)
2. محاسبه تعداد صفحات
3. نمایش صفحه فعلی
4. ایجاد دکمه‌های صفحه‌بندی (بعدی، قبلی و …)

کد نمونه:

int pageSize = 10;
int pageNumber = 1;
List<Person> list = new List<Person>();

private void LoadPage()
{
    var pageData = list.Skip((pageNumber - 1) * pageSize)
                       .Take(pageSize)
                       .ToList();
    dataGridView1.DataSource = pageData;
}

دکمه‌های صفحه‌بندی:

private void btnNext_Click(object sender, EventArgs e)
{
    pageNumber++;
    LoadPage();
}

private void btnPrev_Click(object sender, EventArgs e)
{
    if (pageNumber > 1)
        pageNumber--;
    LoadPage();
}

روش دوم: صفحه‌بندی DataGridView با SQL Server (حرفه‌ای و سریع)

این روش در پروژه‌های واقعی پیشنهاد می‌شود زیرا:

  1.  فقط رکوردهای مورد نیاز از دیتابیس دریافت می‌شود.
  2.  سرعت بسیار بیشتر است.

در پروژه‌هایی که دیتابیس شما رکوردهای زیادی دارد، بهترین راه برای صفحه‌بندی استفاده از قابلیت OFFSET–FETCH در SQL Server است.

با این روش، سرور فقط داده‌های لازم برای همان صفحه را برمی‌گرداند و بار روی شبکه و حافظه بسیار کم می‌شود.

 کوئری SQL صفحه‌بندی:

SELECT *
FROM Employees
ORDER BY Id
OFFSET (@PageNumber - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;

 نمونه کد در سی شارپ:

private DataTable LoadPagedData(int pageNumber, int pageSize)
{
    using (SqlConnection con = new SqlConnection("your connection"))
    {
        SqlDataAdapter da = new SqlDataAdapter(
            "SELECT * FROM Employees ORDER BY Id " +
            "OFFSET (@page-1)*@size ROWS FETCH NEXT @size ROWS ONLY", con);

        da.SelectCommand.Parameters.AddWithValue("@page", pageNumber);
        da.SelectCommand.Parameters.AddWithValue("@size", pageSize);

        DataTable dt = new DataTable();
        da.Fill(dt);

        return dt;
    }
}

نمونه از صفحه بندی حرفه ای با Dapper در دوره آموزش جامع ساخت نرم افزار حسابدرای و انبارداری

 دوره آموزش جامع ساخت نرم افزار حسابدرای و انبارداری

 

آیا به دنبال یک فرصت عالی برای یادگیری برنامه‌نویسی هستید؟ 🚀

با دوره آموزشی سی‌شارپ ما، شما می‌توانید مهارت‌های خود را به سطح جدیدی ارتقا دهید! این دوره به‌طور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامه‌نویسی سی‌شارپ پیش بروید.

👨‍🏫 چرا دوره ما را انتخاب کنید؟

  • محتوای جامع و عملی: با پروژه‌های واقعی و تمرینات عملی، یادگیری را به تجربه‌ای جذاب تبدیل کنید.
  • مدرس مجرب: از تجربه و دانش مدرس حرفه‌ای بهره‌مند شوید که شما را در هر مرحله از یادگیری راهنمایی می‌کنند.
  • پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
  • دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، می‌توانید به آن مراجعه کنید.

💡 فرصت را از دست ندهید!

بایادگیری سی‌شارپ، می‌توانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژه‌های جذاب و چالش‌برانگیز شرکت کنید.

همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده‌ای روشن‌تر بردارید!

شرکت در دوره آموزش برنامه نویسی سی شارپ

 

مثال پروژه محور صفحه‌ بندی دیتا گرید ویو در سی‌شارپ

با این مثال عملی، تمام مراحل صفحه‌بندی را از ابتدا تا انتها مشاهده می‌کنید.

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

 مراحل انجام پروژه

  1.  ایجاد دکمه‌های اول، قبلی، بعدی و آخر
  2.  تعریف pageSize و pageNumber
  3.  اجرای کوئری SQL
  4.  به‌روزرسانی DataGridView
  5.  نمایش شماره صفحه فعلی
int pageSize = 20;
int pageNumber = 1;

private void LoadGrid()
{
    dataGridView1.DataSource = LoadPagedData(pageNumber, pageSize);
    lblPage.Text = $"صفحه {pageNumber}";
}

private void btnNext_Click(object sender, EventArgs e)
{
    pageNumber++;
    LoadGrid();
}

private void btnPrev_Click(object sender, EventArgs e)
{
    if (pageNumber > 1)
        pageNumber--;
    LoadGrid();
}

نکات مهم برای بهبود عملکرد Paging در DataGridView

برای این‌که صفحه‌بندی شما سریع، روان  باشد، باید چند نکته بسیار مهم را رعایت کنید.

رعایت این موارد باعث افزایش سرعت و بهبود تجربه کاربری می‌شود.

  1.  از VirtualMode استفاده کنید اگر رکوردها زیاد هستند.
  2.  از OFFSET–FETCH در SQL استفاده کنید.
  3.  همیشه ستون‌های غیرضروری را حذف کنید.
  4.  از Async Await برای بارگذاری داده‌ها استفاده کنید.
  5.  صفحه فعلی را در UI نمایش دهید.

پرسش‌های صفحه‌‌بندی دیتا گرید ویو در سی‌شارپ

1. آیا صفحه‌بندی روی عملکرد برنامه تأثیر دارد؟

بله، مخصوصاً وقتی داده‌ها زیاد باشد، باعث افزایش سرعت ۵ تا ۱۰ برابر می‌شود.

 2. آیا صفحه‌بندی روی UI قابل سفارشی سازی است؟

بله، می‌توانید دکمه‌های رفتن به صفحه خاص، نمایش تعداد کل صفحات و… اضافه کنید.

پرسش‌های صفحه‌ بندی دیتا گرید ویو در سی‌شارپ

نتیجه‌گیری

صفحه‌بندی در DataGridView یکی از مهم‌ترین تکنیک‌ها برای مدیریت داده‌های حجیم در برنامه‌های ویندوز فرم است.

این روش نه تنها سرعت بارگذاری و عملکرد برنامه را بهبود می‌دهد، بلکه تجربه کاربری را نیز ساده‌تر و روان‌تر می‌کند.

با استفاده از صفحه‌بندی می‌توان اطلاعات را به صفحات کوچک‌تر تقسیم کرد، دسترسی کاربر به داده‌ها را سریع‌تر نمود و مصرف منابع سیستم را بهینه کرد.

همچنین این تکنیک در انواع پروژه‌ها از نرم‌افزارهای حسابداری و انبارداری گرفته تا سیستم‌های مدیریت کاربران و گزارش‌گیری، کاربرد گسترده دارد.

 

 

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.

999,000 تومان

3.5k بازدید
آموزش جامع ساخت نرم افزار حسابداری و انبارداری ,آموزش جامع ساخت نرم افزار حسابداری,آموزش جامع ساخت نرم افزار انبارداری

آموزش جامع ساخت نرم افزار حسابداری و انبارداری

سیستم حسابداری و انبارداری یکی از ابزارهای مهم برای سازمان‌ها و شرکت‌ها است که فرایند های عملیاتی را بهبود و افزایش می دهد.

10,000,000 6,000,000 تومان

33 نظر

5.9k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.