منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الاستعلام لا يعمل مع BackgroundWorker - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : الاستعلام لا يعمل مع BackgroundWorker (/showthread.php?tid=31532)

الصفحات: 1 2 3


RE: الاستعلام لا يعمل مع BackgroundWorker - Emam emam - 10-10-19

(10-10-19, 06:52 AM)asemshahen5 كتب : الغ اللوب الخاص بالجمع و المتغيير sum فقط ضع الكود التالي هو سيقوم بالمطلوب و به اسم الليبل سيعبئها تلقائيا :

PHP كود :
       Invoke(Sub() Label20.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells("ActPercent").Value)).Sum().ToString("00,000.00")) 
مثال :
PHP كود :
   Private Sub BackgroundWorker2_DoWork(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker2.DoWork
        Invoke
(Sub() Label20.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells("ActPercent").Value)).Sum().ToString("00,000.00"))
 
   End Sub 

عفوا اخي لم ينجح معي
وضعت لحضرتك الكود الخاص بحدث ال  DoWork كاملا لعلي اخطات في شيئ



PHP كود :
Private Sub BackgroundWorker1_DoWork(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker1.DoWork
        If dtPatients
.Tables("Patients").Rows.Count 0 Then
            Invoke
(Sub() ProgressBar1.Visible False)
 
           Exit Sub
        End 
If
 
       Dim ii As Integer 0
        Invoke
(Sub() ProgressBar1.Maximum dtPatients.Tables("Patients").Rows.Count)
 
       Invoke(Sub() ProgressBar1.Visible True)
 
       If dtPatients.Tables("Patients").Rows.Count 0 Then
            Invoke
(Sub() ProgressBar1.Visible False)
 
       End If
 
       Invoke(Sub() DataGridView1.Rows.Clear())
 
       ii 0
        For Each row 
As DataRow In dtPatients.Tables("Patients").Rows
            Invoke
(Sub() DataGridView1.Rows.Add(row.ItemArray))
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
           Invoke(Sub() Label10.Text ii)
 
           Application.DoEvents()
 
       Next
        Invoke
(Sub() Label20.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells("ActPercent").Value)).Sum().ToString("00,000.00"))
 
   End Sub 



RE: الاستعلام لا يعمل مع BackgroundWorker - asemshahen5 - 10-10-19

اخي الكريم الكود لايوجد به خطا الخطأ هو في اسم عامود الداتا غريد فيو و ليس العامود الموجود في جدول قاعدة البيانات :

PHP كود :
   Private Sub BackgroundWorker1_DoWork(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker1.DoWork
        If dtPatients
.Tables("Patients").Rows.Count 0 Then
            Invoke
(Sub() ProgressBar1.Visible False)
 
           Exit Sub
        End 
If
 
       Dim ii As Integer 0
        Invoke
(Sub() ProgressBar1.Maximum dtPatients.Tables("Patients").Rows.Count)
 
       Invoke(Sub() ProgressBar1.Visible True)
 
       Invoke(Sub() DataGridView1.Rows.Clear())
 
       ii 0
        For Each row 
As DataRow In dtPatients.Tables("Patients").Rows
            Invoke
(Sub() DataGridView1.Rows.Add(row.ItemArray))
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
           Invoke(Sub() Label10.Text ii)
 
           Application.DoEvents()
 
       Next
        Invoke
(Sub() Label20.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells(0).Value)).Sum().ToString("00,000.00"))
 
   End Sub 

يكفي فقط وضع ترتيبه في الداتا غريد فيو حسب ظهوره العد يبدء من الصفر الى العامود المطلوب مع مراعاة الاعمدة المخفية اي .

[attachment=23159]


RE: الاستعلام لا يعمل مع BackgroundWorker - Emam emam - 10-10-19

(10-10-19, 02:16 PM)asemshahen5 كتب : اخي الكريم الكود لايوجد به خطا الخطأ هو في اسم عامود الداتا غريد فيو و ليس العامود الموجود في جدول قاعدة البيانات :

PHP كود :
   Private Sub BackgroundWorker1_DoWork(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker1.DoWork
        If dtPatients
.Tables("Patients").Rows.Count 0 Then
            Invoke
(Sub() ProgressBar1.Visible False)
 
           Exit Sub
        End 
If
 
       Dim ii As Integer 0
        Invoke
(Sub() ProgressBar1.Maximum dtPatients.Tables("Patients").Rows.Count)
 
       Invoke(Sub() ProgressBar1.Visible True)
 
       Invoke(Sub() DataGridView1.Rows.Clear())
 
       ii 0
        For Each row 
As DataRow In dtPatients.Tables("Patients").Rows
            Invoke
(Sub() DataGridView1.Rows.Add(row.ItemArray))
 
           ii += 1
            BackgroundWorker1
.ReportProgress(ii)
 
           Invoke(Sub() Label10.Text ii)
 
           Application.DoEvents()
 
       Next
        Invoke
(Sub() Label20.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells(0).Value)).Sum().ToString("00,000.00"))
 
   End Sub 

يكفي فقط وضع ترتيبه في الداتا غريد فيو حسب ظهوره العد يبدء من الصفر الى العامود المطلوب مع مراعاة الاعمدة المخفية اي .

الله يرضيك ويعافيك ويرزقك الخير يارب 
جزاك الله كل خير
فعلا انا كنت بكتب اسم العمود حسب قاعدة البيانات وليس الداتا جريد فيو
الان الحمد لله يعمل بشكل ممتاز 
انا بشكرك جدا علي مجهودك الرائع معي ومع كل اللي في الجروب


RE: الاستعلام لا يعمل مع BackgroundWorker - asemshahen5 - 10-10-19

الحمد لله و الشكر لله و موفقين انشاء الله .