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.