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

Error In Datagridview "index Was Out Of Range"

بدأه computeach في 13 يناير 2009 · 2 رد · 927 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أريد اقرا بيانات كل خلية على حده من datagridview في vb.net 2005

وارسل قيمتها غلى database

وهذا الكود

Dim i, j, wight As Integer

For i = 0 To SNO - 1 ' row

For j = 1 To SNO 'column

wight = DataGridView1.Item(j, i).Value

'Rows(i).Cells("S1").Value()

DS.Clear()

sqlStatement = "Insert into Stakeholder_wights (Proj_ID,SH_ID,SH1_ID,Wight) values (" & ProjectId & "," & i + 1 & "," & j & "," & wight & " )"

Insert()

Next

Next

المشكلة عند المرور على loop

الداخلية يقرا قيمة الخلية الأولى صح ويخزنها في قاعدة البيانات

وفي المرة الثانية عند المرور على سطر

wight = DataGridView1.Item(j, i).Value

يظهر هذا الخطا

Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index

ارجو مساعدتي ما الحل؟

تم تعديل هذه المشاركة بواسطة computeach في 13 يناير 2009 في 23:54

#2

مرحباً أخي الكريم .

جرب التالي :

 

Dim I [color= #b1b100;]As Integer [color= #339933;]= [color= #cc66cc;]0

Dim J[color= #339933;], Wight [color= #b1b100;]As Integer

[color= #b1b100;]For [color= #990000;]Each Ro [color= #b1b100;]As DataGridViewRow In DataGridView1[color= #339933;].Rows

[color= #b1b100;]If Not Ro[color= #339933;].IsNewRow Then

[color= #b1b100;]For J [color= #339933;]= [color= #cc66cc;]0 To UBound[color= #009900;]( DataGridView1[color= #339933;].Columns [color= #009900;])

Wight [color= #339933;]= Ro[color= #339933;].Cells[color= #009900;]( J [color= #009900;])[color= #339933;].Value

SqlStatement [color= #339933;]= [color= #0000ff;]"Insert into Stakeholder_wights (Proj_ID,SH_ID,SH1_ID,Wight) values (" [color= #339933;]& [color= #990000;]_

ProjectId [color= #339933;]& [color= #0000ff;]"," [color= #339933;]& I [color= #339933;]+ [color= #cc66cc;]1 [color= #339933;]& [color= #0000ff;]"," [color= #339933;]& J [color= #339933;]& [color= #0000ff;]"," [color= #339933;]& Wight [color= #339933;]& [color= #0000ff;]" )"

Insert[color= #009900;]([color= #009900;])

[color= #990000;]Next J

I [color= #339933;]+= [color= #cc66cc;]1

[color= #990000;]End [color= #b1b100;]If

[color= #990000;]Next Ro

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

1000 شكر

انا جربت الكود الذي ارسلته وعملت عليه تعديل بسيط واشتغل معايا تمام

وهذا الكود الجديد

  Dim I As Integer = 0
		Dim J, Wight As Integer


		For Each Ro As DataGridViewRow In DataGridView1.Rows
			If Not Ro.IsNewRow Then
				For J = 1 To DataGridView1.Columns.Count - 1 'UBound(DataGridView1.Columns("S1") as integer)
					Wight = Ro.Cells(J).Value
					sqlStatement = "Insert into Stakeholder_wights (Proj_ID,SH_ID,SH1_ID,Wight) values (" & ProjectId & "," & I + 1 & "," & J & "," & Wight & " )"
					Insert()
				Next J
				I += 1
			End If
		Next Ro

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