تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
بطي في عرض او جلب البيانات من القاعدة
#1
السلام عليكم ورحمة الله وبركاته

ارفق لكم مثال اواجه في مشكلة في بطي في جلب البيانات من القاعدة واريد حل مماثل يساعدني علي حل المشكلة وتسريع في جلب او عرض البيانات 


وشكرا لكم .


الملفات المرفقة
.rar   WA_FLP.rar (الحجم : 203.03 ك ب / التحميلات : 21)
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

الحل الوحيد لتفادي البطئ في برمجة الكائنات المرئية أن تقسم كود التنفيذ على مراحل، مثلا هنا تعرض جزء من النتيجة ..

قم بإضافة أزرار لنافذة العرض عدد اثنين (Button2) + (Button3).

ثم قم بمسح الكود السابق وأنسخ الكود التالي في كود نافذة العرض:
كود :
Imports System.Data.OleDb

Public Class Form1

   Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB_FLP.mdb;Jet OLEDB:Database Password=")

   Dim dp As New OleDbDataAdapter("Select * From Tbl", con)
   Dim ds As New DataSet

   Dim dt As DataTable

   Dim num2 As Integer
   Dim i As Integer = 0
   Dim j As Integer = 100

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       Try
           dp.Fill(ds)
           dt = ds.Tables.Item(0)
           num2 = (dt.Rows.Count - 1)
           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)

               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)
               i += 1
               If i = j Then Exit Do
           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
       Button2.Enabled = True
       Button3.Enabled = True
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       j = j + 100

       Try

           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)

               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)

               i += 1
               If i = j Then Exit Do
           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
   End Sub

   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       j = j - 100 : If j < 0 Then j = 100
       i = i - 200 : If i < 0 Then i = 0


       Try

           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)
               If i >= j Then Exit Do
               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)

               i += 1

           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
   End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Button2.Text = "التالي"
       Button2.Enabled = False
       Button3.Text = "السابق"
       Button3.Enabled = False
   End Sub

End Class
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: عبدالكريم برشدان , ali_ahmed12
#3
(20-11-22, 08:34 PM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته

الحل الوحيد لتفادي البطئ في برمجة الكائنات المرئية أن تقسم كود التنفيذ على مراحل، مثلا هنا تعرض جزء من النتيجة ..

قم بإضافة أزرار لنافذة العرض عدد اثنين (Button2) + (Button3).

ثم قم بمسح الكود السابق وأنسخ الكود التالي في كود نافذة العرض:
كود :
Imports System.Data.OleDb

Public Class Form1

   Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB_FLP.mdb;Jet OLEDB:Database Password=")

   Dim dp As New OleDbDataAdapter("Select * From Tbl", con)
   Dim ds As New DataSet

   Dim dt As DataTable

   Dim num2 As Integer
   Dim i As Integer = 0
   Dim j As Integer = 100

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


       Try
           dp.Fill(ds)
           dt = ds.Tables.Item(0)
           num2 = (dt.Rows.Count - 1)
           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)

               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)
               i += 1
               If i = j Then Exit Do
           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
       Button2.Enabled = True
       Button3.Enabled = True
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       j = j + 100

       Try

           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)

               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)

               i += 1
               If i = j Then Exit Do
           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
   End Sub

   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
       j = j - 100 : If j < 0 Then j = 100
       i = i - 200 : If i < 0 Then i = 0


       Try

           Me.FlowLayoutPanel1.Controls.Clear()

           Do While (i <= num2)
               If i >= j Then Exit Do
               Dim uc As New UserControl1
               uc.Label1.Text = dt.Rows.Item(i).Item("nam").ToString
               Me.FlowLayoutPanel1.Controls.Add(uc)

               i += 1

           Loop
       Catch ex As Exception
           MsgBox(ex.Message)
           Exit Sub
       End Try
   End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Button2.Text = "التالي"
       Button2.Enabled = False
       Button3.Text = "السابق"
       Button3.Enabled = False
   End Sub

End Class

شكرا علي الاهتمام بسؤالي لقد قمت بتنفيذ الكود

هل يمكن تغيير ازرار التالي والسابق بشريط autoscrllo في حالة الزيادة او النقصان
الرد }}}
تم الشكر بواسطة:
#4
لا أعرف طريقة مجدية بالـ Scrol
كل ما يخطر ببالي طريقة تعتمد على الاستغناء عن الـ Scrol الأساسي بواحد إضافي
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة:
#5
اولا اشكر المهندس Taha Okla علي اهتمام بسؤالي وبالمجهودات التي بدلها من اجل مساعدتي وكان الطريقة جميلة ومفيدة

ثانيا اريد فكرة ثانية اضافة الي الفكرة التي طرحها المهندس Taha Okla وهي جعل زيادة السجلات من خلال autoscrllo

اي بمعني :

كل ما حركت autoscrllo الي الاسفل زاد عرض السجلات من قاعدة البيانات علي سبيل المثال + 5 علي كل حركة للسفل


وشكرا
الرد }}}
تم الشكر بواسطة:
#6
(29-11-22, 01:10 PM)عبدالكريم برشدان كتب : اولا اشكر المهندس Taha Okla علي اهتمام بسؤالي وبالمجهودات التي بدلها من اجل مساعدتي وكان الطريقة جميلة ومفيدة

ثانيا اريد فكرة ثانية اضافة الي الفكرة التي طرحها المهندس Taha Okla وهي جعل زيادة السجلات من خلال  autoscrllo

اي بمعني :

كل ما حركت  autoscrllo الي الاسفل زاد عرض السجلات من قاعدة البيانات علي سبيل المثال + 5 علي كل حركة للسفل


وشكرا


نفس الكود السابق ولكن قم بإلغاء زر التراجع
وقم بتعطيل السطر التالي من زر التالي :
كود :
'  Me.FlowLayoutPanel1.Controls.Clear()

وبدلاً من اسم (التالي أو شكل الزر) قم بتغييره للشكل الذي تريد والمكان الذي تراه مناسباً ..
وبهذه سيقوم بإضافة 100 عنصر مع كل ضغطة - أو العدد الذي تريده ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: عبدالكريم برشدان
#7
(29-11-22, 04:50 PM)Taha Okla كتب :
(29-11-22, 01:10 PM)عبدالكريم برشدان كتب : اولا اشكر المهندس Taha Okla علي اهتمام بسؤالي وبالمجهودات التي بدلها من اجل مساعدتي وكان الطريقة جميلة ومفيدة

ثانيا اريد فكرة ثانية اضافة الي الفكرة التي طرحها المهندس Taha Okla وهي جعل زيادة السجلات من خلال  autoscrllo

اي بمعني :

كل ما حركت  autoscrllo الي الاسفل زاد عرض السجلات من قاعدة البيانات علي سبيل المثال + 5 علي كل حركة للسفل


وشكرا


نفس الكود السابق ولكن قم بإلغاء زر التراجع
وقم بتعطيل السطر التالي من زر التالي :
كود :
'  Me.FlowLayoutPanel1.Controls.Clear()

وبدلاً من اسم (التالي أو شكل الزر) قم بتغييره للشكل الذي تريد والمكان الذي تراه مناسباً ..
وبهذه سيقوم بإضافة 100 عنصر مع كل ضغطة - أو العدد الذي تريده ..
شكرا شكرا
الرد }}}
تم الشكر بواسطة:
#8
(20-11-22, 06:08 PM)عبدالكريم برشدان كتب : السلام عليكم ورحمة الله وبركاته

ارفق لكم مثال اواجه في مشكلة في بطي في جلب البيانات من القاعدة واريد حل مماثل يساعدني علي حل المشكلة وتسريع في جلب او عرض البيانات 


وشكرا لكم .

فقط كل ما عليك هو تفعيل هذا الخيار
وتمتع بسرعة جلب البيانات
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  القاعدة رغم وجود الباس وورد اصبحت لا تفتح atefkhalf2004 5 469 20-10-25, 10:24 AM
آخر رد: dr.programming
  تصدير البيانات إلى ملف RTF مصمم هاوي 4 823 15-08-25, 04:13 PM
آخر رد: أبو خالد الشكري
  [VB.NET] ما هو أفضل موقع استضافة لقواعد البيانات MSSQL ؟ mmaalmesry 0 795 16-07-25, 10:45 PM
آخر رد: mmaalmesry
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,217 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  مشكلة في حفظ البيانات مصمم هاوي 2 1,019 30-06-25, 08:51 AM
آخر رد: مصمم هاوي
  بطء في جلب البيانات مصمم هاوي 9 999 08-05-25, 07:51 AM
آخر رد: مصمم هاوي
  تعديل كود تحديث البيانات مصمم هاوي 1 784 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
Photo لايمكن تعرف على تنسيق قاعدة البيانات الدريساوي 2 697 26-04-25, 12:24 AM
آخر رد: الدريساوي
  مساعدة في طريقة تحميل الفيديوهات المخزنة في قاعدة البيانات foad8920 0 660 24-04-25, 12:58 PM
آخر رد: foad8920
  إغلاق الفورم مع حذف جميع البيانات الموجودة به صالح عبدالله 10 1,036 19-04-25, 08:54 PM
آخر رد: Kamil

التنقل السريع :


يقوم بقرائة الموضوع: