在数据行错误,集合被修改;枚举操作可能不会执行 [英] Error in datarow,Collection was modified; enumeration operation might not execute

查看:227
本文介绍了在数据行错误,集合被修改;枚举操作可能不会执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有for-each循环,其中数据行被更新所以异常,集合已修改;枚举操作可能不会执行的产生。什么办法来解决呢?我已经看到到列表的功能,但它不与数据行的工作,这里是我的代码:

 的foreach(DataRow的行dataTable.Rows){
TEMP =行[0]的ToString();
的foreach(在dataTable.Rows的DataRow行){如果
(临时==行[0]的ToString()){
tempdatatable.Rows.Add(行[0],行[ 1]);
dataTable.Rows.Remove(行);
//更新发生在这里
}
tempdatatable.DefaultView.Sort =gscitations DESC;
dataGridView1.DataSource = tempdatatable;
}
}


解决方案

尝试这样的:

 的for(int i = 0; I< dataTable.Rows.Count;我++)
$ { b $ b VAR tempRow = dataTable.Rows [I]
变种临时= dataTable.Rows [I] [0];
为(INT J = 0; J< dataTable.Rows.Count; J ++)
{
的DataRow行= dataTable.Rows [J]。
如果(温度==行[0]的ToString())
{
tempdatatable.Rows.Add(tempRow [0],tempRow [1]);
dataTable.Rows.Remove(行); //此处更新发生
}
tempdatatable.DefaultView.Sort =gscitations DESC;
dataGridView1.DataSource = tempdatatable;
}
}


I have for-each loop in which the data row is updated so the exception ,Collection was modified; enumeration operation might not execute is generated. any way to fix it? i have seen To-List function but it is not working with data row , here is my code:

foreach (DataRow row in dataTable.Rows) {
  temp = row[0].ToString();
  foreach (DataRow rows in dataTable.Rows) {
    if (temp == rows[0].ToString()) {
      tempdatatable.Rows.Add(row[0],row[1]);
      dataTable.Rows.Remove(rows);
      //Update happens here
    }
    tempdatatable.DefaultView.Sort = "gscitations DESC";
    dataGridView1.DataSource = tempdatatable;
  }
}

解决方案

Try this :

for (int i = 0; i < dataTable.Rows.Count; i++)
{
    var tempRow = dataTable.Rows[i];
    var temp = dataTable.Rows[i][0];
    for (int j = 0; j < dataTable.Rows.Count; j++)
    {
        DataRow rows = dataTable.Rows[j];
        if (temp == rows[0].ToString())
        {
            tempdatatable.Rows.Add(tempRow[0], tempRow[1]);
            dataTable.Rows.Remove(rows);      //Update happen here
        }
        tempdatatable.DefaultView.Sort = "gscitations DESC";
        dataGridView1.DataSource = tempdatatable;
    }
}

这篇关于在数据行错误,集合被修改;枚举操作可能不会执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆