تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] محتاج التعديل على الكود backgroundworker mysql progressbar
#1
السلام عليكم ورحمة الله

عندي كود يسحب الداتا من موقعي

طبعا في تاخير خفيف عند السحب وخصوصا اذا كانت المعلومات كبيره

شغلت االكود مع backgroundworker  والحمدالله شغال تمام

بس محتاج اضافه واحده وهيه

progressbar
على ان يعمل ال progressbar لغاية اكمال المعلومات

هذا الكود الاولي

كود :
   Public Sub Carga()
       Dim adapter As New MySqlDataAdapter("select * from cq_dxstation", connection)
       Dim table As New DataTable()
       adapter.Fill(table)
       ComboBox1.DataSource = table
       ComboBox1.ValueMember = "dxcallsign"
       ComboBox1.DisplayMember = "dxcallsign"
   End Sub


   Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
       Carga()
   End Sub

اسحب الداتا في ال ComboBox1


وهذا الكود الثاني


كود :
   Public Sub Gettodatag()
       Dim com As String = String.Format("SELECT id,dati ,time ,mode ,band FROM cq_qso Where dxcallsign like  '{0}' and  cals like  '{1}' order by dati DESC ", Opencontest, Label10.Text)
       Dim Adpt As New MySqlDataAdapter(com, connection)
       Dim ds As New DataSet()
       Adpt.Fill(ds, "cq_qso")

       DataGridView1.DataSource = ds
       DataGridView1.DataMember = "cq_qso"
       DataGridView1.Columns(0).Visible = False
       DataGridView1.Columns(1).HeaderCell.Value = "Date"
       DataGridView1.Columns(1).Width = "100"

       DataGridView1.Columns(2).HeaderCell.Value = "UTC"
       DataGridView1.Columns(2).Width = "100"

       DataGridView1.Columns(3).HeaderCell.Value = "Mode"
       DataGridView1.Columns(3).Width = "100"

       DataGridView1.Columns(4).HeaderCell.Value = "Band"
       DataGridView1.Columns(4).Width = "100"
       DataGridView1.Columns(5).HeaderCell = New CheckHeaderCell
       Label11.Text = DataGridView1.Rows.Count - 0

   End Sub
   Private Sub BackgroundWorker2_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker2.DoWork
       Gettodatag()
   
   End Sub


بس حاولت اضبط اضافه ال progressbar  بس مع الاسف ما ضبط

جزاكم الله خير وشكرا
الرد
تم الشكر بواسطة:
#2
Vb.NET (Visual Basic 2008/2010) : How to use a BackgroundWorker
الرد
تم الشكر بواسطة: dubai.eig , حريف برمجة , حريف برمجة
#3
(21-03-19, 04:24 PM)asemshahen5 كتب : Vb.NET (Visual Basic 2008/2010) : How to use a BackgroundWorker

شكرا لك

من امس كنت ابحث ووصلت لهذه النتيجه

كود :
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
       Dim adapter As New MySqlDataAdapter("select * from cq_dxstation", connection)
       Dim table As New DataTable()
       adapter.Fill(table)
       BackgroundWorker1.ReportProgress(100)
       Threading.Thread.Sleep(100)
       ComboBox1.DataSource = table
       BackgroundWorker1.ReportProgress(100)
       Threading.Thread.Sleep(100)
   End Sub

   Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
       ProgressBar1.Value = e.ProgressPercentage
       Me.lblStatus.Text = e.ProgressPercentage & " Percent Completed!"
   End Sub

   Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
       Me.ProgressBar1.Visible = False

       ComboBox1.ValueMember = "dxcallsign"
       ComboBox1.DisplayMember = "dxcallsign"
       Me.lblStatus.Text = "DONE!"
       Me.Cursor = Cursors.Default
   End Sub


اذا هناك اي غلط او تعديل اتمنى تفيدوني 

وشكرا من جديد للاخ asemshahen5  على الرد الكريم
الرد
تم الشكر بواسطة:
#4
لا شكر على واجب جرب هذا التعديل اما اذا كنت تريد تعبئة داتا غريد فهناك حل آخر حسب ما تريد تعبئته .

PHP كود :
   Private Sub BackgroundWorker1_DoWork(sender As ObjectAs DoWorkEventArgsHandles BackgroundWorker1.DoWork
        Dim adapter 
As New MySqlDataAdapter("select * from cq_dxstation"connection)
 
       Dim table As New DataTable()
 
       adapter.Fill(table)
 
       ProgressBar1.Maximum table.Rows.Count 1
        For i 
0 To table.Rows.Count 1
            ComboBox1
.Items.Add(table.Rows(i)("dxcallsign").ToString)
 
           BackgroundWorker1.ReportProgress(i)
 
       Next
    End Sub
    Private Sub BackgroundWorker1_ProgressChanged
(ByVal sender As ObjectByVal e As System.ComponentModel.ProgressChangedEventArgsHandles BackgroundWorker1.ProgressChanged
        ProgressBar1
.Value e.ProgressPercentage
        lblStatus
.Text e.ProgressPercentage " Percent Completed!"
 
   End Sub
    Private Sub BackgroundWorker1_RunWorkerCompleted
(ByVal sender As ObjectByVal e As System.ComponentModel.RunWorkerCompletedEventArgsHandles BackgroundWorker1.RunWorkerCompleted
        Me
.ProgressBar1.Visible False
        lblStatus
.Text "DONE!"
 
       Cursor Cursors.Default
 
   End Sub 

للداتا غريد استبدل كود تعبئة الكومبو بوكس بهذا الكود طبعا بعد إضافة الاعمدة للجدول :

PHP كود :
Dim ii As Integer 0
        ProgressBar1
.Maximum table.Rows.Count 1
        For Each row 
As DataRow In table.Rows
            DataGridView1
.Rows.Add(row.ItemArray)
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
       Next 

و هذا مع الداتاسيت :

PHP كود :
Dim ii As Integer 0
        ProgressBar1
.Maximum DS.Tables("cq_qso").Rows.Count 1
        For Each row 
As DataRow In DS.Tables("cq_qso").Rows
            DataGridView1
.Rows.Add(row.ItemArray)
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
       Next 
الرد
#5
(21-03-19, 09:03 PM)asemshahen5 كتب : لا شكر على واجب جرب هذا التعديل اما اذا كنت تريد تعبئة داتا غريد فهناك حل آخر حسب ما تريد تعبئته .

PHP كود :
   Private Sub BackgroundWorker1_DoWork(sender As ObjectAs DoWorkEventArgsHandles BackgroundWorker1.DoWork
        Dim adapter 
As New MySqlDataAdapter("select * from cq_dxstation"connection)
 
       Dim table As New DataTable()
 
       adapter.Fill(table)
 
       ProgressBar1.Maximum table.Rows.Count 1
        For i 
0 To table.Rows.Count 1
            ComboBox1
.Items.Add(table.Rows(i)("dxcallsign").ToString)
 
           BackgroundWorker1.ReportProgress(i)
 
       Next
    End Sub
    Private Sub BackgroundWorker1_ProgressChanged
(ByVal sender As ObjectByVal e As System.ComponentModel.ProgressChangedEventArgsHandles BackgroundWorker1.ProgressChanged
        ProgressBar1
.Value e.ProgressPercentage
        lblStatus
.Text e.ProgressPercentage " Percent Completed!"
 
   End Sub
    Private Sub BackgroundWorker1_RunWorkerCompleted
(ByVal sender As ObjectByVal e As System.ComponentModel.RunWorkerCompletedEventArgsHandles BackgroundWorker1.RunWorkerCompleted
        Me
.ProgressBar1.Visible False
        lblStatus
.Text "DONE!"
 
       Cursor Cursors.Default
 
   End Sub 

للداتا غريد استبدل كود تعبئة الكومبو بوكس بهذا الكود طبعا بعد إضافة الاعمدة للجدول :

PHP كود :
Dim ii As Integer 0
        ProgressBar1
.Maximum table.Rows.Count 1
        For Each row 
As DataRow In table.Rows
            DataGridView1
.Rows.Add(row.ItemArray)
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
       Next 

و هذا مع الداتاسيت :

PHP كود :
Dim ii As Integer 0
        ProgressBar1
.Maximum DS.Tables("cq_qso").Rows.Count 1
        For Each row 
As DataRow In DS.Tables("cq_qso").Rows
            DataGridView1
.Rows.Add(row.ItemArray)
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
       Next 

تسلم ايدك ضبط معاي وشغال تمام الحمدالله

بارك الله فيك شكرا من جديد

Rolleyes
الرد
تم الشكر بواسطة: asemshahen5
#6
السلام عليكم
dubai.eig
برجاء لو تضع الكود كامل او مثال
لنستفيد منه
الرد
تم الشكر بواسطة: dubai.eig
#7
(02-04-19, 10:11 AM)new_programer كتب : السلام عليكم
dubai.eig
برجاء لو تضع الكود كامل او مثال
لنستفيد منه

وعليكم السلام 

هذا الكود الاول 

كود :
   Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
   
       Dim adapter As New MySqlDataAdapter("select * from cq_dxstation", connection)
       Dim table As New DataTable()
       adapter.Fill(table)
       ProgressBar1.Maximum = table.Rows.Count - 1
       For i = 0 To table.Rows.Count - 1
           ComboBox1.Items.Add(table.Rows(i)("dxcallsign").ToString)
           BackgroundWorker1.ReportProgress(i)
       Next


   End Sub
   Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
       ProgressBar1.Value = e.ProgressPercentage
       lblStatus.Text = e.ProgressPercentage & " Percent Completed!"
   End Sub
   Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
       Me.ProgressBar1.Visible = False
       lblStatus.Text = "DONE!"
       Cursor = Cursors.Default

   End Sub



وهذا الكود الثاني

كود :
  Private Sub BackgroundWorker2_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker2.DoWork

       Using cmd As New MySqlCommand(String.Format("SELECT id,dati FROM cq_qso Where dxcallsign like '{0}' and cals like '{1}' order by dati DESC ", Opencontest, Label10.Text))
           cmd.Connection = connection
           cmd.CommandType = CommandType.Text
           Using sda As New MySqlDataAdapter(cmd)
               sda.Fill(table)
               ProgressBar2.Maximum = table.Rows.Count - 0
               BackgroundWorker2.ReportProgress(table.Rows.Count - 0)
           End Using
       End Using
   End Sub
   Private Sub BackgroundWorker2_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker2.ProgressChanged
       ProgressBar2.Value = e.ProgressPercentage
       Me.Label12.Text = e.ProgressPercentage & " Percent Completed!"
   End Sub

   Private Sub BackgroundWorker2_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker2.RunWorkerCompleted
       Me.ProgressBar2.Visible = False
       Label12.Text = "DONE!"
       Cursor = Cursors.Default
       For Each row As DataRow In table.Rows

           dgvSelectAll.Rows.Add(row.ItemArray)

           Label11.Text = dgvSelectAll.Rows.Count - 0
           Label11.Text = String.Format("Number of QSO : {0}  ", Label11.Text)
       Next

   End Sub


والحمدالله شغال تمام  Rolleyes
الرد
تم الشكر بواسطة: asemshahen5 , elgokr , new_programer


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشاكل بقاعدة البيانات MySQL azoz 2 49 أمس, 04:36 PM
آخر رد: سميـر
Exclamation [VB.NET] كود عندما يتم تحميل الصفحة كاملة في WebBrowser يكمل تنفيذ الكود SnTnt 4 138 16-09-19, 01:25 AM
آخر رد: SnTnt
Tongue [VB.NET] محتاج كود تغير الاي بي أو مشروع aldery 5 141 11-09-19, 04:02 AM
آخر رد: transavia
  [VB.NET] تنفيذ الكود حينما لا يجد له اسم او Attribute ابو روضة 7 218 10-09-19, 06:08 PM
آخر رد: mohamedahmed1
  عايز اعمل ProgressBar فى وضع مسج بوكس بالتزامن مع شئ على زهران 7 200 08-09-19, 08:41 PM
آخر رد: سعود
  MySql قاعدة بيانات اون لاين Kian Tech 9 1,546 02-09-19, 02:28 AM
آخر رد: viv
  اخوانى الكود ينفذ الامر خطا خالد كامل1 6 170 02-09-19, 02:22 AM
آخر رد: AAAAAAAAA
  [سؤال] كيف أقوم بعمل سيرفر علي جهازي لقواعد بيانات MYSQL +VB.NET dametucorazon 3 463 01-09-19, 10:10 PM
آخر رد: عماني939
  [سؤال] كيف أقوم بعمل تحديث للبيانات وخاصة حفظ الصورة مرة أخري mysql +vb>.NET dametucorazon 3 409 01-09-19, 10:06 PM
آخر رد: عماني939
  BackgroundWorker dasktop 11 283 01-09-19, 08:46 PM
آخر رد: fouadhdfouad

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


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