26-05-24, 07:54 PM
لتسريع عملية تحميل البيانات في DataGridView عندما تكون قاعدة البيانات تحتوي على عدد كبير من الصفوف (أكثر من 100,000 صف)، يمكنك اتباع النصائح التالية لتحسين الأداء:
استخدام التحميل الجزئي للبيانات (Paging):
قم بتحميل البيانات على دفعات (pagination) بدلاً من تحميل جميع الصفوف دفعة واحدة. يمكنك تحميل عدد معين من الصفوف (مثل 1000 صف) وعند الحاجة تحميل المزيد.
استخدام الخلفية (Background Worker):
استخدم خلفية عملية لتحميل البيانات بشكل غير متزامن بحيث يمكن للمستخدم التفاعل مع واجهة المستخدم أثناء تحميل البيانات.
تحسين الاستعلامات:
تأكد من أن الاستعلامات الخاصة بك فعالة. استخدام الفهارس المناسبة في قاعدة البيانات يمكن أن يحسن الأداء بشكل كبير.
التحسينات العامة في DataGridView:
قم بإيقاف الرسم التلقائي (AutoSizeColumnsMode) وخصائص الفرز التلقائي (AutoGenerateColumns) حتى يتم تحميل البيانات بالكامل.
إليك كيفية تطبيق بعض هذه النصائح في الكود الخاص بك:
تطبيق التحميل الجزئي للبيانات (Paging):
يمكنك تعديل الاستعلامات الخاصة بك لاستخدام LIMIT و OFFSET (إذا كانت قاعدة بياناتك تدعمها) لتحميل عدد محدد من الصفوف.
استخدام الخلفية لتحميل البيانات:
يمكنك استخدام BackgroundWorker لتحميل البيانات في الخلفية:
تحسين DataGridView:
يمكنك إيقاف بعض الخصائص لتحسين الأداء:
باستخدام هذه النصائح، يمكنك تحسين أداء تحميل البيانات في DataGridView عندما يكون لديك عدد كبير من الصفوف في قاعدة البيانات.
استخدام التحميل الجزئي للبيانات (Paging):
قم بتحميل البيانات على دفعات (pagination) بدلاً من تحميل جميع الصفوف دفعة واحدة. يمكنك تحميل عدد معين من الصفوف (مثل 1000 صف) وعند الحاجة تحميل المزيد.
استخدام الخلفية (Background Worker):
استخدم خلفية عملية لتحميل البيانات بشكل غير متزامن بحيث يمكن للمستخدم التفاعل مع واجهة المستخدم أثناء تحميل البيانات.
تحسين الاستعلامات:
تأكد من أن الاستعلامات الخاصة بك فعالة. استخدام الفهارس المناسبة في قاعدة البيانات يمكن أن يحسن الأداء بشكل كبير.
التحسينات العامة في DataGridView:
قم بإيقاف الرسم التلقائي (AutoSizeColumnsMode) وخصائص الفرز التلقائي (AutoGenerateColumns) حتى يتم تحميل البيانات بالكامل.
إليك كيفية تطبيق بعض هذه النصائح في الكود الخاص بك:
تطبيق التحميل الجزئي للبيانات (Paging):
يمكنك تعديل الاستعلامات الخاصة بك لاستخدام LIMIT و OFFSET (إذا كانت قاعدة بياناتك تدعمها) لتحميل عدد محدد من الصفوف.
استخدام الخلفية لتحميل البيانات:
يمكنك استخدام BackgroundWorker لتحميل البيانات في الخلفية:
PHP كود :
Imports System.ComponentModel
Imports System.Data.OleDb
Public Class Form1
Private Sub LoadData()
' Create a background worker
Dim worker As New BackgroundWorker()
AddHandler worker.DoWork, AddressOf worker_DoWork
AddHandler worker.RunWorkerCompleted, AddressOf worker_RunWorkerCompleted
worker.RunWorkerAsync()
End Sub
Private Sub worker_DoWork(sender As Object, e As DoWorkEventArgs)
Dim connStr As String = ConfigurationManager.ConnectionStrings("LAUNDRY_SYSTEM.My.MySettings.Laundry_DatabaseConnectionString").ConnectionString
Dim dt1 As New DataTable()
Dim dt2 As New DataTable()
Using conn As New OleDbConnection(connStr)
conn.Open()
' Load first data table
Using cmd1 As New OleDbCommand("SELECT billnumber, nameseller, customername, mobilenumber, receiveddate, paymentstatus, paymenttype, dataofpayment, pec, total, discount, VAT, totalamount, amountreceived, remaningamount, Order_status FROM Customers1", conn)
Using sda1 As New OleDbDataAdapter(cmd1)
sda1.Fill(dt1)
End Using
End Using
' Load second data table
Using cmd2 As New OleDbCommand("SELECT productA, itemnumber, price, Total, billnumber FROM Customers", conn)
Using sda2 As New OleDbDataAdapter(cmd2)
sda2.Fill(dt2)
End Using
End Using
End Using
e.Result = New DataSet()
DirectCast(e.Result, DataSet).Tables.Add(dt1)
DirectCast(e.Result, DataSet).Tables.Add(dt2)
End Sub
Private Sub worker_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
Dim ds As DataSet = DirectCast(e.Result, DataSet)
Customers1DataGridView.DataSource = ds.Tables(0)
CustomersDataGridView.DataSource = ds.Tables(1)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadData()
End Sub
End Class
تحسين DataGridView:
يمكنك إيقاف بعض الخصائص لتحسين الأداء:
PHP كود :
Customers1DataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
Customers1DataGridView.AutoGenerateColumns = False
CustomersDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
CustomersDataGridView.AutoGenerateColumns = False
باستخدام هذه النصائح، يمكنك تحسين أداء تحميل البيانات في DataGridView عندما يكون لديك عدد كبير من الصفوف في قاعدة البيانات.
غَزة شجرة سنديان لا تنحني، ووردة لا تذبل، وشوكة عصية على الكسر. غزة، دماؤها تنتصر على السيف والسياف.
متغيب لفترة ان اخطأت بحق احد ارجو المسامحة


