الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الكود دا بيدينى خطأ Index was out of range

بدأه darkoon2001 في 22 ديسمبر 2011 · 10 رد · 506 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الكود دا بيدينى ارور Index was out of range وبينفذة على اول سطر بس

وانا عاوزه يتنفذ على كل اللى كل اللى موجود فى الداتاجريد

 For i = 0 To PurchasePindingDataGridView.Rows.Count - 1
            If PurchasePindingDataGridView.Rows.Count > 0 Then

                sql = "UPDATE Products SET PQuantity = PQuantity + " & PurchasePindingDataGridView.Item(5, i).Value & " Where Products_Code =" & PurchasePindingDataGridView.Item(1, i).Value
                obj.RunInsertDeleteUpdateQry(sql)

            End If
        Next

والنبى ساعدونى انا محتاجها دلوقتى حالا انقزونىىىىىىىىىىىىىىىىىىىىىىىىىىىىىىىى

دا الفورم

هوا كل اللى انا عاوزه ان لما ادوس على زر all in ware house

ينفذ الامر اللى انا كاتبة

بحيث يضيف على المخزن الكمية اللى موجود فى الداتا جريد حسب الاى دى بتاع المنتج

401_01324483817.png

#2

السلام عليكم ..

  1. المفروض أن المتحول i هو رقم السطر أي ان : PurchasePindingDataGridView.Item(i, 5) و ليس العكس كما ذكرت و نفس الشئ بالنسبة لـ : PurchasePindingDataGridView.Item(i , 1)

تعديل :

الخاصية Item تأخذ البارمتر الأول هو رقم العمود .. و الثاني رقم السطر ..

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 22 ديسمبر 2011 في 23:32

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3
houssam11350_11350 كتب:

السلام عليكم ..

  1. المفروض أن المتحول i هو رقم السطر أي ان :
     PurchasePindingDataGridView.Item(i, 5)

    و ليس العكس كما ذكرت و نفس الشئ بالنسبة لـ :

    PurchasePindingDataGridView.Item(i , 1)

تمام بعد معدلتة بيطلعلى خطا Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

الكود الحالى اهو

Dim i As Object

For i = 0 To PurchasePindingDataGridView.RowCount - 1

If PurchasePindingDataGridView.RowCount > -1 Then

sql = "UPDATE Products SET PQuantity = PQuantity + " & PurchasePindingDataGridView.Item(i, 5).Value & " Where Products_Code like " & PurchasePindingDataGridView.Item(i, 1).Value

obj.RunInsertDeleteUpdateQry(sql)

next

#4

هوا اللى انا محتاجة ان العمود بتاع الكمية quantity

يتضاف على المخزن (جدول فى الداتا بيز اسمة Products ) حسب اسم المنتج او الرقم فى الداتاجريد

لان دول منتجات اشتريناها زيادة على اللى فى المخزن

#5

السلام عليكم ..

  1. عذرا على الخطأ الذي ورد .. بخصوص رقم السطر و العمود .. حيث الــ Item تأخذ أول بارمتر هو رقم العمود ..
  2. ربما المشكلة في السطر الجديد الذي تظهر على ترويسته إشارة النجمة و لا يحوي قيم جرب هذا الكود :
    For i = 0 To PurchasePindingDataGridView.RowCount - 1
            	If (Not PurchasePindingDataGridView.Rows(i).IsNewRow()) Then
    
                	sql = "UPDATE Products SET PQuantity = PQuantity + " & PurchasePindingDataGridView.Item(5, i).Value & " Where Products_Code =" & PurchasePindingDataGridView.Item(1, i).Value
    
                	MsgBox(sql)
                	obj.RunInsertDeleteUpdateQry(sql)
            	End If
    
        	Next

    فربما يعمل معك .. علما أنه عمل معي ...

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 22 ديسمبر 2011 في 23:29

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#6
houssam11350_11350 كتب:

السلام عليكم ..

  1. عذرا على الخطأ الذي ورد .. بخصوص رقم السطر و العمود .. حيث الــ Item تأخذ أول بارمتر هو رقم العمود ..
  2. ربما المشكلة في السطر الجديد الذي تظهر على ترويسته إشارة النجمة و لا يحوي قيم جرب هذا الكود :
    For i = 0 To PurchasePindingDataGridView.RowCount - 1
            	If (Not PurchasePindingDataGridView.Rows(i).IsNewRow()) Then
    
                	sql = "UPDATE Products SET PQuantity = PQuantity + " & PurchasePindingDataGridView.Item(5, i).Value & " Where Products_Code =" & PurchasePindingDataGridView.Item(1, i).Value
    
                	MsgBox(sql)
                	obj.RunInsertDeleteUpdateQry(sql)
            	End If
    
        	Next

    فربما يعمل معك .. علما أنه عمل معي ...

والله انا مش عارف اعتزرلك ازاى على ازعاجى ليك اخى الحبيب

بس بتظهرلى المشكلة دى برضو

401_01324586384.png

401_11324586384.png

#7

السلام عليكم ..

  1. أنا شايف كدا .. وراء رسالة الخطأ .. تعليمات مثل Clear و Delete .. أكيد أنك تقوم بحذف الأسطر من الــ Grid ضمن هذه التعليمات .. و الله أعلم .. و هذا إن حصل فإنه يسبب الخطأ الذي يحصل معك و الحل ...اعمل حلقة for للحفظ ...و حلقة تانية للحذف من قاعدة البيانات مثلا .. و أخيرا امسح الأسطر كلها دفعة واحدة بــ :
    PurchasePindingDataGridView.Rows.Clear()

  2. إذا لم تحل المشكلة .. ممكن ترفق لي الكود (فقط النافذة المطلوبة) ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#8
houssam11350_11350 كتب:

السلام عليكم ..

  1. أنا شايف كدا .. وراء رسالة الخطأ .. تعليمات مثل Clear و Delete .. أكيد أنك تقوم بحذف الأسطر من الــ Grid ضمن هذه التعليمات .. و الله أعلم .. و هذا إن حصل فإنه يسبب الخطأ الذي يحصل معك و الحل ...اعمل حلقة for للحفظ ...و حلقة تانية للحذف من قاعدة البيانات مثلا .. و أخيرا امسح الأسطر كلها دفعة واحدة بــ :
    PurchasePindingDataGridView.Rows.Clear()

  2. إذا لم تحل المشكلة .. ممكن ترفق لي الكود (فقط النافذة المطلوبة) ..

تمام التمام

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

والله العظيم بدعيلك من قلبى

بنا يباركلك حبيبى ولو احتجت اى حاجة انا عينى ليك

#9
houssam11350_11350 كتب:

السلام عليكم ..

  1. أنا شايف كدا .. وراء رسالة الخطأ .. تعليمات مثل Clear و Delete .. أكيد أنك تقوم بحذف الأسطر من الــ Grid ضمن هذه التعليمات .. و الله أعلم .. و هذا إن حصل فإنه يسبب الخطأ الذي يحصل معك و الحل ...اعمل حلقة for للحفظ ...و حلقة تانية للحذف من قاعدة البيانات مثلا .. و أخيرا امسح الأسطر كلها دفعة واحدة بــ :
    PurchasePindingDataGridView.Rows.Clear()

  2. إذا لم تحل المشكلة .. ممكن ترفق لي الكود (فقط النافذة المطلوبة) ..

دا كود النافذة كلها كمان يا باشا

Public Class PurchaseOrderForm

Dim tbl As New DataTable

Dim sql As String

Dim obj As New DBClass

Dim N As Integer

Dim M As Integer

Private Sub PurchaseOrderForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: This line of code loads data into the 'PurchasePindingDataSet.PurchasePinding' table. You can move, or remove it, as needed.

Me.PurchasePindingTableAdapter.Fill(Me.PurchasePindingDataSet.PurchasePinding)

RefreshGrid()

Clear()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

txtTime.Text = TimeOfDay

DateTP.Value = Date.Today

End Sub

Private Sub btmClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmClose.Click

Me.Close()

End Sub

Private Sub btmSelectPro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmSelectPro.Click

If txtSID.Text = "" Or txtSName.Text = "" Then

MsgBox("Please Select Supplier First")

Else

ProductListingForm.ShowDialog()

End If

End Sub

Private Sub RefreshGrid()

sql = "Select * from PurchasePinding "

tbl = obj.GetRecords(sql)

PurchasePindingDataGridView.DataSource = tbl

End Sub

Private Sub Clear()

txtPID.Clear()

txtPName.Clear()

txtUnit.Clear()

txtUnitPrice.Clear()

txtPQuantity.Clear()

txtPStock.Clear()

txtAmount.Clear()

txtAllQuantity.Clear()

txtSID.Clear()

txtSName.Clear()

txtSContact.Clear()

txtSAddress.Clear()

txtSTel.Clear()

End Sub

Private Sub btmSelectSup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmSelectSup.Click

SupplierslistingForm.ShowDialog()

End Sub

Private Sub btmSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmSave.Click

On Error Resume Next

sql = "Insert into Purchase (Products_Code, Products_Name, Products_Unit, Unit_Price, ProQuantity, Amount, PurDate, PurNote, SID, SName, STel, SContact, SAddress, AllQuantity,PurchaseAmount)SELECT Products_Code, Products_Name, Products_Unit, Unit_Price, ProQuantity, Amount, PurDate, PurNote, SID, SName, STel, SContact, SAddress, AllQuantity,PurchaseAmount FROM PurchasePinding"

obj.RunInsertDeleteUpdateQry(sql)

Me.Close()

End Sub

Private Sub btmAllInWarehouse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmAllInWarehouse.Click

For i = 0 To PurchasePindingDataGridView.RowCount - 1

If (Not PurchasePindingDataGridView.Rows(i).IsNewRow()) Then

sql = "UPDATE Products SET PQuantity = PQuantity + " & PurchasePindingDataGridView.Item(5, i).Value & " Where Products_Code =" & PurchasePindingDataGridView.Item(1, i).Value

obj.RunInsertDeleteUpdateQry(sql)

End If

Next

delete()

Clear()

RefreshGrid()

End Sub

Private Sub delete()

sql = "Delete from PurchasePinding"

obj.RunInsertDeleteUpdateQry(sql)

RefreshGrid()

Clear()

End Sub

Private Sub btmSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmSearch.Click

PurchaseOrderListing.ShowDialog()

End Sub

End Class

#10

ممكن ترفق البرنامج ليس الكود لنتمكن من معرفت اين الخطء

#11

الخطأ انه في عامود موجود في الداتابيز مش ماخذ الحجم الكافي فيتم اعطاءه بيانات اكبر من الحجم اللي بيقدر ياخذه

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…