Jump to content

Recommended Posts

Posted (edited)

ArgumentOutOfRangeException was unhandled

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

Parameter name: index

Dá-me este erro a tentar adicionar mais campos para listar na datagridview gostaria de saber o que posso fazer.

Aqui vai o código.

Dim provider As String
	provider = "provider = Microsoft.ACE.OLEDB.12.0;Data Source=Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\hypz\Ambiente de trabalho\TESTE TRABALHO PAP\Trabalho PAP\Trabalho PAP\pap.accdb; persist security info = false;"
	Dim con As New OleDbConnection(provider)
	con.Open()
	Dim sql As String = "Select * from Utilizador"
	Dim sqlcom As New OleDbCommand(sql, con)
	Dim dr As OleDbDataReader = sqlcom.ExecuteReader
	DataGridView1.Columns.Clear()
	Dim n As Integer = dr.FieldCount
	Dim campo As String
	Dim k As Integer
	For k = 0 To n - 1
		campo = dr.GetName(k)
		DataGridView1.Columns.Add(campo, campo)
	Next
	Dim i As Integer = 1
	While dr.Read
		Dim linha As New DataGridViewRow
		DataGridView1.Rows.Add(linha)
		DataGridView1.Rows(i).Cells(0).Value = dr.Item(0)
		DataGridView1.Rows(i).Cells(1).Value = dr.Item(1)
		DataGridView1.Rows(i).Cells(2).Value = dr.Item(2)
		DataGridView1.Rows(i).Cells(3).Value = dr.Item(3)
		DataGridView1.Rows(i).Cells(4).Value = dr.Item(4)
		DataGridView1.Rows(i).Cells(5).Value = dr.Item(5)
		DataGridView1.Rows(i).Cells(6).Value = dr.Item(6)
		DataGridView1.Rows(i).Cells(7).Value = dr.Item(7)
		DataGridView1.Rows(i).Cells(8).Value = dr.Item(8)
		DataGridView1.Rows(i).Cells(9).Value = dr.Item(9)
		DataGridView1.Rows(i).Cells(10).Value = dr.Item(10)
		DataGridView1.Rows(i).Cells(11).Value = dr.Item(11)
		i = i + 1
	End While
	DataGridView1.AutoSizeColumnsMode = _
	DataGridViewAutoSizeColumnsMode.AllCells
	con.Close()

O erro dá-me a partir do "DataGridView1.Rows(i).Cells(9).Value = dr.Item(9)", até ao "DataGridView1.Rows(i).Cells(9).Value = dr.Item(8)" corre mas chega ao 9 e dá-me aquele erro que eu nao sei qual é e como resolver, sei que tem a haver com o index (i) mas nao o sei resolver.

Edited by Caça
GeSHi
Posted

Eu pouco percebo (ou nada) também estou a aprender, mas parece-me (aqui pelo livro que estou a ler) que antes de fechar a conecção tens de fechar o Executereader.

E parece-me que i devia ser igual a zero.

Mas como digo não pesco nada disto.. mas como experimentar não custa..Experimenta. 🙂

Boa sorte!

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted

Obrigado pelas respostas mas já consegui resolver, sim o valor de i é igual a 0 mas eu tentei 1 para tentar. O problema foi resolvido e a minha gridview tinha 12 campos 🙂

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.