محتاج التعديل على الكود backgroundworker mysql progressbar - dubai.eig - 21-03-19
السلام عليكم ورحمة الله
عندي كود يسحب الداتا من موقعي
طبعا في تاخير خفيف عند السحب وخصوصا اذا كانت المعلومات كبيره
شغلت االكود مع 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 بس مع الاسف ما ضبط
جزاكم الله خير وشكرا
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - asemshahen5 - 21-03-19
Vb.NET (Visual Basic 2008/2010) : How to use a BackgroundWorker
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - dubai.eig - 21-03-19
(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 على الرد الكريم
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - asemshahen5 - 21-03-19
لا شكر على واجب جرب هذا التعديل اما اذا كنت تريد تعبئة داتا غريد فهناك حل آخر حسب ما تريد تعبئته .
PHP كود :
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 System.ComponentModel.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 System.ComponentModel.RunWorkerCompletedEventArgs) Handles 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
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - dubai.eig - 22-03-19
(21-03-19, 09:03 PM)asemshahen5 كتب : لا شكر على واجب جرب هذا التعديل اما اذا كنت تريد تعبئة داتا غريد فهناك حل آخر حسب ما تريد تعبئته .
PHP كود :
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 System.ComponentModel.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 System.ComponentModel.RunWorkerCompletedEventArgs) Handles 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
تسلم ايدك ضبط معاي وشغال تمام الحمدالله
بارك الله فيك شكرا من جديد
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - new_programer - 02-04-19
السلام عليكم
dubai.eig
برجاء لو تضع الكود كامل او مثال
لنستفيد منه
RE: محتاج التعديل على الكود backgroundworker mysql progressbar - dubai.eig - 02-04-19
(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
والحمدالله شغال تمام
|