المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
السلام عليكم ورحمة الله
عندي كود يسحب الداتا من موقعي
طبعا في تاخير خفيف عند السحب وخصوصا اذا كانت المعلومات كبيره
شغلت االكود مع 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,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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 على الرد الكريم
المشاركات : 2,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
21-03-19, 09:03 PM
(آخر تعديل لهذه المشاركة : 21-03-19, 09:13 PM {2} بواسطة 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
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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
تسلم ايدك ضبط معاي وشغال تمام الحمدالله
بارك الله فيك شكرا من جديد
المشاركات : 230
المواضيع 66
الإنتساب : Nov 2018
السمعة :
6
الشكر: 127
تم شكره 124 مرات في 85 مشاركات
السلام عليكم
dubai.eig
برجاء لو تضع الكود كامل او مثال
لنستفيد منه
المشاركات : 536
المواضيع 182
الإنتساب : Mar 2016
السمعة :
19
الشكر: 652
تم شكره 264 مرات في 171 مشاركات
(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
والحمدالله شغال تمام
|