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

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


وشكرا لكم .


الملفات المرفقة
.rar   WA_FLP.rar (الحجم : 203.03 ك ب / التحميلات : 13)
الرد }}}
تم الشكر بواسطة:
#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 1 107 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
  [VB.NET] حل مشكلة الاتصال بقواعد البيانات access loay775 2 170 25-02-24, 06:29 AM
آخر رد: loay775
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 262 11-02-24, 08:43 PM
آخر رد: assuhimi
  [VB.NET] منع تكرار البيانات في عند الادخال مبرمج صغير 1 2 267 24-01-24, 05:18 PM
آخر رد: مبرمج صغير 1
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 281 18-01-24, 05:04 PM
آخر رد: loay775
  [VB.NET] إعادة استدعاء البيانات من قاعدة بيانات اكسس والاهم الصورة مبرمج صغير 1 1 282 13-01-24, 01:17 PM
آخر رد: مبرمج صغير 1
  [كود] اريد كود إرسال البيانات من الفيجوال بيسك إلىPDF issamsaidd 10 5,866 25-12-23, 06:30 PM
آخر رد: الحزين اليماني
  جملة الاتصال بقاعدة البيانات اكسس محمد خيري 4 372 12-12-23, 03:14 AM
آخر رد: محمد خيري
  كود الاتصال بقاعدة البيانات sqlserver strongriseman 2 425 29-11-23, 09:25 PM
آخر رد: العتيق
Heart [VB.NET] كيفية جعل الدتاجريديد فيو تظهر عندما تكون قاعدة البيانات فارغه الحزين اليماني 1 376 22-11-23, 05:31 PM
آخر رد: justforit

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم