datagridview - C# Iterative loop to run a DataGrieView rows - Index was out of range -


alright guys , use loop run through rows of datagirdview in order change length of values . problem shown : "index out of range , must non-negative , less size of collection. paramater name. index."

for (k=1; k<=(datagridview3.rows.count); k++)                     {                         string changenumber = datagridview3[k, 6].tostring();                          changenumber = changenumber.remove(changenumber.length - 2);                         datagridview3.rows[k].cells[6].value = changenumber;                     } 

my datagridview datagridview3 , want 6th column have 2 less digits in end. run iteration cells of rows in 6th column. ideas ?

edited : added whole exception form ! enter image description here

ok works ... !!!!

for (counter = 0; counter < (datagridview3.rows.count); counter++)                     {                         string changenumber = datagridview3.rows[counter].cells["value"].value.tostring();                         changenumber = changenumber.remove(changenumber.length - 2);                         datagridview3.rows[counter].cells["value"].value = changenumber;                     } 

it reduces 2 digits needed still exception : object reference not set instance of object.

okay, i'm going respond both question , comment here:

question: recommend using foreach(row r in datagridview3.rows). easy way iterate through list without having check null reference exception. have made assumption row class here. if double array need foreach(double[] d in datagridview3.rows).

comment: far truncating last 2 numbers off of 6000, can doing int.parse(varholdingsixthousand.tostring().replace(000, 0));.

let me know if doesn't make sense.

edit: foreach(datagridviewrow d in datagridview3.rows)

as far truncating 2 digits off end of number, can use little more adaptable like: int.parse(varholdingnumber.tostring().substring(varholdingnumber.tostring().length - 2, 2))


Comments