تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub
#23
(07-06-24, 07:42 PM)العتيق كتب : شكرا لك اخ Taha Okla
لم تكتب اي كلمة الا و كنت مصيبا بها ولكن بالنسبة لي من منطلق محبتي لهذا المنتدى و اعضائه الاكارم الذين لا يؤلون جهدا في مساعدة السائل ومن منطلق اما السائل فلا تنهر 

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

بانسبة للفورم الثاني و هو الرئيسي او فورم تسجيل الدخول نكتب الآتي


PHP كود :
Public Class Form2
    Private frm1 
As Form1

    Private Sub Form2_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        frm1 
= New Form1()
 
       frm1.Hide() ' إخفاء الفورم الأولى عند تحميل الفورم الثانية
        frm1.LoadNotes()
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        frm1.Show() ' 
إظهار الفورم الأولى عند الضغط على الزر

    End Sub
End 
Class 
 
اما بالنسبة للفورم الذي سيعرض المعلومات الثقيلة او العبوات الثقيلة يصبح بهذا الشكل
PHP كود :
Imports System.Data.OleDb
Imports System
.Threading.Tasks

Public Class Form1
    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        
'Try
        ' 
   ' فتح الاتصال بقاعدة البيانات
        ' 
   conn.Open()
 
       '    MessageBox.Show("Connection opened successfully!")
        '
Catch ex As Exception
        
'    MessageBox.Show("Error: " & ex.Message)
        '
Finally
 
       '    ' التأكد من إغلاق الاتصال حتى في حالة وجود استثناء
        
'    conn.Close()
        ' 
   MessageBox.Show("Connection closed.")
 
       'End Try

        ' 
تشغيل المهام بشكل غير متزامن لتحميل البيانات
        Me
.WindowState FormWindowState.Maximized
        
'LoadNotes()
    End Sub

    '
Private Async Function LoadAllData() As Task
    
'    Await Task.WhenAll(
    ' 
   Task.Run(Sub() LoadNotes()),
 
   '    Task.Run(Sub() LoadLaundryInfo()),
    ' 
   Task.Run(Sub() LoadAllCustomers()),
 
   '    Task.Run(Sub() LoadSubUser()),
    ' 
   Task.Run(Sub() LoadCategory()),
 
   '    Task.Run(Sub() LoadData())
    ' 
   )
 
   'End Function

    Public Sub LoadNotes()
        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
        LoadLaundryInfo()
    End Sub

    Private Sub LoadLaundryInfo()
        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").ToString()
                valuvat = ds.Tables(0).Rows(0).Item("Value_VAT").ToString()
                paytype = ds.Tables(0).Rows(0).Item("type").ToString()
                typevat = ds.Tables(0).Rows(0).Item("Type_VAT").ToString()
            End If
        End Using
        LoadAllCustomers()
    End Sub

    Private Sub LoadAllCustomers()
        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
        LoadSubUser()
    End Sub

    Private Sub LoadSubUser()
        '
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").ToString()
 
       '        Tailor = ds.Tables(0).Rows(0).Item("Tailor").ToString()
        ' 
       Laundery ds.Tables(0).Rows(0).Item("Laundery").ToString()
 
       '    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
        LoadCategory
()
 
   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"10FontStyle.Bold),
 
                       .Width 125,
 
                       .Height 60,
 
                       .Text rdr("item_NameA").ToString(),
 
                       .Tag rdr("ID").ToString(),
 
                       .FlatStyle FlatStyle.Flat,
 
                       .BackColor Color.FromArgb(724156),
 
                       .ForeColor Color.White
                    
}
 
                   FlowLayoutPanel3.Controls.Add(button)
 
                   button.Cursor Cursors.Hand
                    AddHandler button
.ClickAddressOf button_Click
                End 
While
 
           End Using
            conn
.Close()
 
       End Using
        FlowLayoutPanel3
.AutoScroll True
        LoadData
()
 
   End Sub

    Private Sub LoadData
()
 
       FlowLayoutPanel1.Controls.Clear()
 
       Dim query As String
        If _action 
"StartUp" Then
            query 
"SELECT pic, ID, ProductNameA, ProductNameE FROM Proudect WHERE ProductNameA LIKE @searchText"
 
       ElseIf _action "Search1" Then
            query 
"SELECT pic, ID, ProductNameA, ProductNameE FROM Proudect WHERE id_Proudect_items = @query"
 
       End If

 
       Using Cmd As New OleDbCommand(queryconn)
 
           If _action "StartUp" Then
                Cmd
.Parameters.AddWithValue("@searchText""%" TextSerch.Text "%")
 
           ElseIf _action "Search1" Then
                Cmd
.Parameters.AddWithValue("@query"_query1)
 
           End If

 
           conn.Open()
 
           Using rdr Cmd.ExecuteReader(CommandBehavior.CloseConnection)
 
               While rdr.Read()
 
                   Dim len As Long rdr.GetBytes(00Nothing00)
 
                   Dim array(CInt(len)) As Byte
                    rdr
.GetBytes(00, array, 0CInt(len))
 
                   pic = New PictureBox() With {
 
                       .Width 150,
 
                       .Height 150,
 
                       .BackgroundImageLayout ImageLayout.Stretch,
 
                       .Tag rdr("ID").ToString()
 
                   }
 
                   AddHandler pic.ClickAddressOf lblD_Click
                    lblD1 
= New Label() With {
 
                       .Font = New Font("Tahoma"10FontStyle.Bold),
 
                       .ForeColor Color.FromArgb(724156),
 
                       .BackColor Color.GhostWhite,
 
                       .Dock DockStyle.Top,
 
                       .Tag rdr("ID").ToString(),
 
                       .Text rdr("ID").ToString()
 
                   }
 
                   lblD = New Label() With {
 
                       .Font = New Font("Tahoma"9FontStyle.Bold),
 
                       .ForeColor Color.FromArgb(724156),
 
                       .BackColor Color.GhostWhite,
 
                       .Dock DockStyle.Bottom,
 
                       .Tag rdr("ID").ToString(),
 
                       .Text rdr("ProductNameE").ToString() & "-" rdr("ProductNameA").ToString()
 
                   }
 
                   AddHandler lblD.ClickAddressOf 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
            conn
.Close()
 
       End Using
        
'FlowLayoutPanel1.AutoScroll = True
    End Sub

    Private Sub lblD_Click(sender As Object, e As EventArgs)
        ' 
Implement price display logic here
    End Sub

    Private Sub button_Click
(sender As ObjectAs EventArgs)
 
       _action "Search1"
 
       _query1 sender.Tag.ToString()
 
       LoadData()
 
   End Sub

    Private Sub Button1_Click
(sender As ObjectAs EventArgsHandles Button1.Click
        
' You can call LoadAllData or specific methods here
    End Sub
End Class 



 جزاك الله خيرا ووفقك الله وسدد خطاك يارب .... سوف اطلع على الكود  ...

اخير واخرا ان شاء الله كيف يمكنني عمل جملة تاكد اذا كانت ال Task  تعمل لا يقوم بتكرار الامر مرة اخرى 

هنا ارغب باضافة جملة تحقق IF Statement حتى ينتهي ال Task  من اداء المهمة لانه يوجد لدي Button  للتحديث وشكرا

PHP كود :
 Await Task.WhenAll(
 
       Task.Run(Sub() LoadCategory()),
 
       Task.Run(Sub() LoadData()),
 
       Task.Run(Sub() notee()),
 
       Task.Run(Sub() landryInfo()),
 
       Task.Run(Sub() SelectAll_Customers()),
 
       Task.Run(Sub() GetSub_User())
 
       
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: ماهي الطريقة الصحيحة والسريعة لجلب بيانات من قاعدة البيانات داخل Private Sub - بواسطة mohamedgadain61 - 08-06-24, 12:33 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,849 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  تصدير البيانات إلى ملف RTF مصمم هاوي 4 817 15-08-25, 04:13 PM
آخر رد: أبو خالد الشكري
  [VB.NET] ما هو أفضل موقع استضافة لقواعد البيانات MSSQL ؟ mmaalmesry 0 793 16-07-25, 10:45 PM
آخر رد: mmaalmesry
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,207 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  مشكلة في حفظ البيانات مصمم هاوي 2 1,019 30-06-25, 08:51 AM
آخر رد: مصمم هاوي
  بطء في جلب البيانات مصمم هاوي 9 988 08-05-25, 07:51 AM
آخر رد: مصمم هاوي
  [Acces2007] مشكلة ملف قاعدة بيانات access للقراءة فقط mmaalmesry 11 1,450 29-04-25, 08:55 PM
آخر رد: mmaalmesry
  تعديل كود تحديث البيانات مصمم هاوي 1 779 26-04-25, 06:07 PM
آخر رد: مصمم هاوي
Photo لايمكن تعرف على تنسيق قاعدة البيانات الدريساوي 2 695 26-04-25, 12:24 AM
آخر رد: الدريساوي
  مساعدة في طريقة تحميل الفيديوهات المخزنة في قاعدة البيانات foad8920 0 658 24-04-25, 12:58 PM
آخر رد: foad8920

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


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