ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 04-06-24
السلام عليكم ورحمة الله
اخواني الكرام اعاني من فترة طويلة من تاخير بالفورم يتاخر لمدة 8 ثواني حتى يجلب البيانات من قاعدة البيانات وياخذ وفت طويل علما بان قاعدة البيانات يوجد بها مئات الاف من البيانات
ارفقت لكم الكود ادناه ... هل من حل يقوم بتسريع العمل داخل الفورم دون تأخير مجرد فتح الفورم يقوم بجلب البيانات وشكرا
PHP كود :
Private Sub Orders_Load(sender As Object, e As EventArgs) Handles Me.Load notee() landryInfo() SelectAll_Customers() GetSub_User() LoadCategory() LoadData() End Sub
Private Sub notee() Dim dp As New OleDbDataAdapter("SELECT ID, notee FROM notess", conn) Dim dt As DataTable = New DataTable() dp.Fill(dt) CheckedListBox1.DataSource = dt CheckedListBox1.DisplayMember = "notee" CheckedListBox1.ValueMember = "ID" End Sub
Private Sub landryInfo() Dim dp As New OleDbDataAdapter("select * from landryInfo where ID =" & 5 & " ", conn) Dim ds As New DataSet dp.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then statusvat = ds.Tables(0).Rows(0).Item("Status_vat") valuvat = ds.Tables(0).Rows(0).Item("Value_VAT") paytype = ds.Tables(0).Rows(0).Item("type") typevat = ds.Tables(0).Rows(0).Item("Type_VAT") End If End Sub
Private Sub SelectAll_Customers() Dim Cmmd As New OleDbCommand("Select mobilenumber,customername from Customers1", conn) Dim da As New OleDbDataAdapter(Cmmd) Dim dt As New DataSet da.Fill(dt) Dim cloumn1 As New AutoCompleteStringCollection Dim cloumn2 As New AutoCompleteStringCollection Dim i As Integer For i = 0 To dt.Tables(0).Rows.Count - 1 cloumn1.Add(dt.Tables(0).Rows(i)("mobilenumber").ToString()) Next TextBox11.AutoCompleteSource = AutoCompleteSource.CustomSource TextBox11.AutoCompleteMode = AutoCompleteMode.SuggestAppend TextBox11.AutoCompleteCustomSource = cloumn1 End Sub
Private Sub GetSub_User()
Dim dp As New OleDbDataAdapter("Select * FROM Sub where ID =" & 1 & "", conn) Dim ds As New DataSet dp.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then subscription = ds.Tables(0).Rows(0).Item("Sub_Customer") Tailor = ds.Tables(0).Rows(0).Item("Tailor") Laundery = ds.Tables(0).Rows(0).Item("Laundery") End If
Dim dp1 As New OleDbDataAdapter("Select ID, user_name FROM login", conn) conn.Open() Dim dt As DataTable = New DataTable() dp1.Fill(dt) ComboBox1.DataSource = dt ComboBox1.DisplayMember = "user_name" ComboBox1.ValueMember = "user_name" ComboBox2.DataSource = dt ComboBox2.DisplayMember = "ID" ComboBox2.ValueMember = "ID" conn.Close() End Sub
Private Sub LoadCategory() FlowLayoutPanel3.Controls.Clear() Using Cmd As New OleDbCommand("select * from Proudect_items", conn) conn.Open() rdr = Cmd.ExecuteReader While rdr.Read Dim button = New Button button.Font = New Font("Tahoma", 10, FontStyle.Bold) button.Width = 125 button.Height = 60 button.Text = rdr.Item("item_NameA").ToString button.Tag = rdr.Item("ID").ToString button.FlatStyle = FlatStyle.Flat button.BackColor = Color.FromArgb(72, 4, 156) button.ForeColor = Color.White FlowLayoutPanel3.Controls.Add(button) button.Cursor = Cursors.Hand AddHandler button.Click, AddressOf button_Click End While End Using rdr.Close() conn.Close() FlowLayoutPanel3.AutoScroll = True End Sub
Private Sub LoadData() FlowLayoutPanel1.Controls.Clear() If _action = "StartUp" Then Cmd = New OleDbCommand("SELECT pic,ID,ProductNameA,ProductNameE from Proudect Where ProductNameA like '%" & TextSerch.Text & "%' ", conn) If _action = "Search1" Then Cmd = New OleDbCommand("SELECT pic,ID,ProductNameA,ProductNameE from Proudect Where id_Proudect_items =" & _query1 & "", conn) conn.Open() rdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection) While rdr.Read Dim len As Long = rdr.GetBytes(0, 0, Nothing, 0, 0) Dim array(CInt(len)) As Byte rdr.GetBytes(0, 0, array, 0, CInt(len)) pic = New PictureBox pic.Width = 150 pic.Height = 150 pic.BackgroundImageLayout = ImageLayout.Stretch pic.Tag = rdr.Item("ID").ToString AddHandler pic.Click, AddressOf lblD_Click '----------------------------------------------------- lblD1 = New Label lblD1.Font = New Font("Tahoma", 10, FontStyle.Bold) lblD1.ForeColor = Color.FromArgb(72, 4, 156) lblD1.BackColor = Color.GhostWhite lblD1.Dock = DockStyle.Top lblD1.Tag = rdr.Item("ID").ToString lblD1.Text = rdr.Item("ID").ToString '----------------------------------------------------- lblD = New Label lblD.Font = New Font("Tahoma", 9, FontStyle.Bold) lblD.ForeColor = Color.FromArgb(72, 4, 156) lblD.BackColor = Color.GhostWhite lblD.Dock = DockStyle.Bottom lblD.Tag = rdr.Item("ID").ToString lblD.Text = rdr.Item("ProductNameE").ToString & "-" & rdr.Item("ProductNameA").ToString AddHandler lblD.Click, AddressOf lblD_Click '----------------------------------------------------- Dim ms As New System.IO.MemoryStream(array) Dim bitmap As New System.Drawing.Bitmap(ms) pic.BackgroundImage = bitmap '----------------------------------------------------- pic.Controls.Add(lblD) pic.Controls.Add(lblD1) FlowLayoutPanel1.Controls.Add(pic) '-------------------------------------------------------------------------------------------------------------- End While FlowLayoutPanel1.AutoScroll = True rdr.Close() conn.Close() End Sub
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - العتيق - 04-06-24
PHP كود :
Private Async Sub Orders_Load(sender As Object, e As EventArgs) Handles Me.Load Await Task.WhenAll( Task.Run(Sub() notee()), Task.Run(Sub() landryInfo()), Task.Run(Sub() SelectAll_Customers()), Task.Run(Sub() GetSub_User()), Task.Run(Sub() LoadCategory()), Task.Run(Sub() LoadData()) ) End Sub Private Sub notee() Using dp As New OleDbDataAdapter("SELECT ID, notee FROM notess", conn) Dim dt As New DataTable() dp.Fill(dt) CheckedListBox1.DataSource = dt CheckedListBox1.DisplayMember = "notee" CheckedListBox1.ValueMember = "ID" End Using End Sub Private Sub landryInfo() Using dp As New OleDbDataAdapter("SELECT Status_vat, Value_VAT, type, Type_VAT FROM landryInfo WHERE ID = 5", conn) Dim ds As New DataSet() dp.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then statusvat = ds.Tables(0).Rows(0).Item("Status_vat") valuvat = ds.Tables(0).Rows(0).Item("Value_VAT") paytype = ds.Tables(0).Rows(0).Item("type") typevat = ds.Tables(0).Rows(0).Item("Type_VAT") End If End Using End Sub Private Sub SelectAll_Customers() Using Cmmd As New OleDbCommand("SELECT mobilenumber, customername FROM Customers1", conn) Using da As New OleDbDataAdapter(Cmmd) Dim dt As New DataSet() da.Fill(dt) Dim cloumn1 As New AutoCompleteStringCollection() For Each row As DataRow In dt.Tables(0).Rows cloumn1.Add(row("mobilenumber").ToString()) Next TextBox11.AutoCompleteSource = AutoCompleteSource.CustomSource TextBox11.AutoCompleteMode = AutoCompleteMode.SuggestAppend TextBox11.AutoCompleteCustomSource = cloumn1 End Using End Using End Sub Private Sub GetSub_User() Using dp As New OleDbDataAdapter("SELECT Sub_Customer, Tailor, Laundery FROM Sub WHERE ID = 1", conn) Dim ds As New DataSet() dp.Fill(ds) If ds.Tables(0).Rows.Count <> 0 Then subscription = ds.Tables(0).Rows(0).Item("Sub_Customer") Tailor = ds.Tables(0).Rows(0).Item("Tailor") Laundery = ds.Tables(0).Rows(0).Item("Laundery") End If End Using
Using dp1 As New OleDbDataAdapter("SELECT ID, user_name FROM login", conn) Dim dt As New DataTable() dp1.Fill(dt) ComboBox1.DataSource = dt ComboBox1.DisplayMember = "user_name" ComboBox1.ValueMember = "user_name" ComboBox2.DataSource = dt ComboBox2.DisplayMember = "ID" ComboBox2.ValueMember = "ID" End Using End Sub Private Sub LoadCategory() FlowLayoutPanel3.Controls.Clear() Using Cmd As New OleDbCommand("SELECT ID, item_NameA FROM Proudect_items", conn) conn.Open() Using rdr = Cmd.ExecuteReader() While rdr.Read() Dim button = New Button() With { .Font = New Font("Tahoma", 10, FontStyle.Bold), .Width = 125, .Height = 60, .Text = rdr("item_NameA").ToString(), .Tag = rdr("ID").ToString(), .FlatStyle = FlatStyle.Flat, .BackColor = Color.FromArgb(72, 4, 156), .ForeColor = Color.White } FlowLayoutPanel3.Controls.Add(button) button.Cursor = Cursors.Hand AddHandler button.Click, AddressOf button_Click End While End Using End Using FlowLayoutPanel3.AutoScroll = True End Sub Private Sub LoadData() FlowLayoutPanel1.Controls.Clear() If _action = "StartUp" Then Cmd = New OleDbCommand("SELECT pic, ID, ProductNameA, ProductNameE FROM Proudect WHERE ProductNameA LIKE @searchText", conn) Cmd.Parameters.AddWithValue("@searchText", "%" & TextSerch.Text & "%") ElseIf _action = "Search1" Then Cmd = New OleDbCommand("SELECT pic, ID, ProductNameA, ProductNameE FROM Proudect WHERE id_Proudect_items = @query", conn) Cmd.Parameters.AddWithValue("@query", _query1) End If
conn.Open() Using rdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection) While rdr.Read() Dim len As Long = rdr.GetBytes(0, 0, Nothing, 0, 0) Dim array(CInt(len)) As Byte rdr.GetBytes(0, 0, array, 0, CInt(len)) pic = New PictureBox() With { .Width = 150, .Height = 150, .BackgroundImageLayout = ImageLayout.Stretch, .Tag = rdr("ID").ToString() } AddHandler pic.Click, AddressOf lblD_Click '----------------------------------------------------- lblD1 = New Label() With { .Font = New Font("Tahoma", 10, FontStyle.Bold), .ForeColor = Color.FromArgb(72, 4, 156), .BackColor = Color.GhostWhite, .Dock = DockStyle.Top, .Tag = rdr("ID").ToString(), .Text = rdr("ID").ToString() } '----------------------------------------------------- lblD = New Label() With { .Font = New Font("Tahoma", 9, FontStyle.Bold), .ForeColor = Color.FromArgb(72, 4, 156), .BackColor = Color.GhostWhite, .Dock = DockStyle.Bottom, .Tag = rdr("ID").ToString(), .Text = rdr("ProductNameE").ToString() & "-" & rdr("ProductNameA").ToString() } AddHandler lblD.Click, AddressOf lblD_Click '----------------------------------------------------- Dim ms As New System.IO.MemoryStream(array) Dim bitmap As New System.Drawing.Bitmap(ms) pic.BackgroundImage = bitmap '----------------------------------------------------- pic.Controls.Add(lblD) pic.Controls.Add(lblD1) FlowLayoutPanel1.Controls.Add(pic) End While End Using FlowLayoutPanel1.AutoScroll = True End Sub
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 04-06-24
لدي 3 اخطاء بعد التعديل على الكود على جميع ال sub المتصلة بقاعدة البيانات
مرفق لك الصور
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - العتيق - 04-06-24
ارفق المشروع الذي تعمل عليه أو هلى تلاقي الفورم التي تسبب مشاكل ليتم تعديلها لك
ارفق المشروع الذي تعمل عليه أو الفورم التي تسبب مشاكل ليتم تعديلها لك
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 04-06-24
السلام عليكم اخي الغالي المشروع مرفق لك عبر ميديا فير عشان حجم كبير
مرفق لك رابط التنزيل وتحياتي لك
https://www.mediafire.com/file/4lj34c7i9h36u9s/test.rar/file
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 05-06-24
مرحبا اخي الغالي المعذرة منك كلمة المرور لقاعدة البيانات هي : 0557
كلمة المرور لقاعدة البيانات موجودة داخل كود الاتصال لقاعدة البيانات في ال App.config
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - العتيق - 05-06-24
قاعدة البيانات معطوبة
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 05-06-24
السلام عليكم شغالة يا غالي تفتح بمايكروسوفت 2019 ...
والحين ارفقتها لك مرة ثانية جرب والغيت الباسورد منها
رابط التحميل : https://www.mediafire.com/file/tzas1mqjz9qe0lm/Laundry_Database.accdb/file
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - العتيق - 05-06-24
هذا الكود غير كامل تاكد من الاكواد
كود :
Using dp As New OleDbDataAdapter("SELECT Sub_Customer, Tailor, Laundery FROM Sub WHERE ID = 1", conn)
Dim ds As New DataSet()
dp.Fill(ds)
If ds.Tables(0).Rows.Count <> 0 Then
subscription = ds.Tables(0).Rows(0).Item("Sub_Customer")
Tailor = ds.Tables(0).Rows(0).Item("Tailor")
Laundery = ds.Tables(0).Rows(0).Item("Laundery")
End If
End Using
لا يوجد في قاعدة البيانات جدول باسم Sub من اين ستجلب المعلومات
عليك تجربة المثال و تعديل الجدول وانا جاهز للمساعدة
من هنا
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - mohamedgadain61 - 05-06-24
اولا شاكر لك جدا على الاهتمام وثانيا المعذرة منك ي غالي الجدول موجود لدي .. ولاكن عندما قمت بعمل نموذج مصغر نسيت انقله المعذرة ... ولاكن هو موجود لدي والخطا موجود .
الرابط الخاص بك لايعمل >
|