System.InvalidOperationException: Collection was modified; enumeration operation might not execute.
使用foreach或for循环删除DataRow的时候出的问题。
用dt.Rows.RemoveAt()或dt.Rows.Remove()或dt.Rows[i].delete()时都可能出现这个问题。
问题原因:row[i].delete()的时候(dt.Rows.RemoveAt()和dt.Rows.Remove()其实是先delete再AcceptChanges的),行的状态必须是Unchanged,才可以的,新增加的行里的状态是Added,然后抛出了刚才说的异常。
解决办法:循环找到datatable中每一行的行状态,都改为Unchanged。
本文介绍在使用DataTable进行数据行删除操作时出现的System.InvalidOperationException: Collection was modified异常的原因及解决方案。通过调整数据行状态为Unchanged来避免枚举过程中集合被修改导致的错误。

2042

被折叠的 条评论
为什么被折叠?



