2010-01-14 39 views
1

我遇到了DataTable的问题。当我跑到客户端时,它会抛出一个异常并在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

这与WCF有什么关系?删除了标签。 – 2010-01-14 18:27:02

+0

该项目完全是使用wcf构建的,这是回调函数 – ericx 2010-01-14 18:36:50

+0

我甚至不确定这是什么语言。 – bmargulies 2010-01-14 18:38:10

回答

1

使用for循环而不是foreach循环。

但是,添加/删除项目时要小心索引。

+0

你能帮我解决这个问题吗? – ericx 2010-01-14 18:43:13

+0

你的问题到底在哪里? – Matthias 2010-01-14 19:26:14

+0

谢谢你我解决它 – ericx 2010-01-14 19:37:44

2

Becouse你是在同一时间加入行你列举他们..

你应该行添加到第二个干净的数据表,并在循环后,由新的DataTable行复制到原来的。

相关问题