c# – Index was out of range. Must be non-negative and less than the size of the collection parameter name:index

c# – Index was out of range. Must be non-negative and less than the size of the collection parameter name:index

The error says The index is out of range. That means you were trying to index an object with a value that was not valid. If you have two books, and I ask you to give me your third book, you will look at me funny. This is the computer looking at you funny. You said – create a collection. So it did. But initially the collection is empty: not only is there nothing in it – it has no space to hold anything. It has no hands.

Then you said the first element of the collection is now ItemID. And the computer says I never was asked to create space for a first item. I have no hands to hold this item you are giving me.

In terms of your code, you created a view, but never specified the size. You need a

dataGridView1.ColumnCount = 5;

Before trying to access any columns. Modify

DataGridView dataGridView1 = new DataGridView();

dataGridView1.Columns[0].Name = ItemID;

to

DataGridView dataGridView1 = new DataGridView();
dataGridView1.ColumnCount = 5;
dataGridView1.Columns[0].Name = ItemID;

See http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.columncount.aspx

Youre not adding columns to your DataGridView

DataGridView dataGridView1 = new DataGridView();//Create new grid

dataGridView1.Columns[0].Name = ItemID;// refer to column which is not there 

Is it clear now why you get an exception?

Add this line before you use columns to fix the error

dataGridView1.ColumnCount = 5;

c# – Index was out of range. Must be non-negative and less than the size of the collection parameter name:index

what this means ? is there any problem in my code

It means that you are accessing a location or index which is not present in collection.

To find this, Make sure your Gridview has 5 columns as you are using its 5th column by this line

dataGridView1.Columns[4].Name = Amount;

Here is the image which shows the elements of an array. So if your gridview has less column then the (index + 1) by which you are accessing it, then this exception arises.

enter

Leave a Reply

Your email address will not be published.