我遇到了DataTable的问题。当我跑到客户端时,它抛出一个Exception,并在foreach中提到“in”。
收藏被修改;枚举操作可能不会执行。
这是代码:
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);
}
}
我该如何解决这个问题?
答案 0 :(得分:2)
因为你在枚举它们的同时添加行..
您应该将行添加到第二个干净的数据表中,然后在循环之后将行从新数据表复制到原始数据表。
答案 1 :(得分:2)
使用for循环而不是foreach循环。
但是,添加/删除项目时请注意索引。