I faced a problem with a DataTable. When I run to client it throws an Exception and mentions the "in" in foreach.
Collection was modified; enumeration operation might not execute.
This is the code:
foreach (DataRow dr in stStatusTable.Rows)
{
if (Convert.ToInt32(dr["st_id"]) == stStatus.st_id)
{
dr["st_id"] = Convert.ToInt32(dr["st_id"]) + 1;
dr.AcceptChanges();
}
else
{
stStatusTable.Rows.Add(stStatus.st_id, stStatus.st_name, stStatus.RTime, stStatus.Total_Mark, stStatus.Completed);
}
}
How can I solve this?
Use a for-loop instead of an foreach loop.
However, be careful with the index when adding / removing items.
Becouse you are adding rows at the same time you are enumerating them..
You should add the rows to a second clean datatable, and after the loop, copy the rows from the new datatable to the original one.
精彩评论