I’m trying to get an int value from a GridView. Here is the screenshot of my gridview.

Here is the asp code for the Gridview
I have created a RowCommand method where when I press the Remove button on the GridView it is suppose to give me the int value of the 2nd column. So for example if I was to press the last Remove button it would give me an int value of 5.
This is my codebehind for the method
protected void grdOrder_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Remove")
{
int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells[2].Text);
clsStockCollection AnId = new clsStockCollection();
clsStock TheOrder = new clsStock();
TheOrder.OrderId = bigStore;
AnId.DeleteOrder(TheOrder);
DataCall();
}
}
When I run this code I get this error.
Object reference not set to an instance of an object.
I don’t understand how or why I need to reference an object for example : Object As New Object. Why do I need to do this?
Here is the codebehind for the full class : pastebin.com/yzLR7s2w
A thanks in advance
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
SelectedRows only returns rows that have been selected; without a selection you won’t get anything. Instead of int bigStore = Convert.ToInt32(grdOrder.SelectedRow.Cells[2].Text); try:
int rowIndex = Convert.ToInt32(e.CommandArgument); // Get the current row int bigStore = Convert.ToInt32(grdOrder.Rows[rowIndex].Cells[2].Text);
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0