منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] طريقة عمل جملة for بطريقة صحيحة - نسخة قابلة للطباعة

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



طريقة عمل جملة for بطريقة صحيحة - larbihamri - 26-04-19

السلام عليكم
كيف حال الجميع

عندي داتاقريد و اريد ان اعمل مقارنة بينها و بين داتا تايبل فإذا كان هناك تطابق يتم إضافة حقل الكمية الخاص بالداتاقريد الى حقل الكمية في الداتا تيبل و ان لم يكن هناك تطابق يتم إضافة سطر جديد في الداتاتيبل و إضافة السجل 
قمت بإستعمال جملة For التالية لكن لم اتوصل الى النتيجة المرجوة 
كود :
For i As Integer = 0 To dgv_achat.RowCount - 1
           For j As Integer = 0 To dtproduit.Rows.Count - 1
               If (dgv_achat.Rows(i).Cells("IdProduit").Value) = (dtproduit.Rows(0).Item("id")) Then
                   dtproduit.Rows(0).Item("qty") = dtproduit.Rows(0).Item("qty") + (dgv_achat.Rows(i).Cells("prix_a_a").Value)
               Else
                   Dim NewRow As DataRow = dtproduit.NewRow
                   NewRow(1) = dgv_achat.Rows(i).Cells("famille_produit_a").Value
                   NewRow(2) = dgv_achat.Rows(i).Cells("nom_produit_a").Value
                   NewRow(3) = dgv_achat.Rows(i).Cells("qty_a").Value
                   NewRow(4) = dgv_achat.Rows(i).Cells("prix_a_a").Value
                   NewRow(5) = dgv_achat.Rows(i).Cells("prix_v_a").Value
                   NewRow(6) = dgv_achat.Rows(i).Cells("total_a").Value
                   dtproduit.Rows.Add(NewRow)
               End If
           Next
       Next

       cmdb = New OleDbCommandBuilder(adapterEdit)
       adapterEdit.Update(dtproduit)
       dtproduit.AcceptChanges()
المشكلة هي انه إذا لم يكن هناك تطابق يقوم بإضافة السجل الجديد لكن متكرر


RE: طريقة عمل جملة for بطريقة صحيحة - elgokr - 26-04-19

وعليكم السلام ورحمة الله وبركاته

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

اذا قمت بارفاق مثال لما لديك
سيتم التعديل عليه بالصورة الصحيحة طبقاً لما تريده

تحياتى لك
وتمنياتى لك التوفيق



RE: طريقة عمل جملة for بطريقة صحيحة - larbihamri - 26-04-19

اخي elgokr السلام عليكم 
لقد قمت بهذا العمل حتى لا يكون هناك استهلاك لموارد الجهاز و هذا ظنا مني انه في كل سطر يقوم بعمل استعلام للداتا يؤدي الى استهلاك الرامات خاصة اذا كان الجدول فيه سجلات كثيرة

الداتا قريد ليست مربوطة بداتاتيبل و تعبئتها تكون عن طريق إضافة صف جديد و استقبال البيانات من التكست بوكس


RE: طريقة عمل جملة for بطريقة صحيحة - elgokr - 26-04-19

ولا يهمك اخى الفاضل 

يمكنك ارفاق مثال لما لديك
ليتم الاطلاع عليه وعمل الكود المناسب لهذا

وكذلك يمكنك مراجعة هذا الموضوع
http://vb4arb.com/vb/showthread.php?tid=29494

المرفق به لنفس الطريقة التى تشير اليها
قد يفيدك بعض الاكواد لعمل المطلوب

تحياتى لك
وتمنياتى لك التوفيق