集合已修改;枚举操作可能无法执行。

来源:互联网 发布:python product 编辑:程序博客网 时间:2024/04/30 16:40

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。

原创粉丝点击