首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

集合已修改;枚举操作可能无法执行。该如何处理

2014-01-23 
集合已修改;枚举操作可能无法执行。 string ConnMdbStr Data Source + txtsqlip.Text + Initial

集合已修改;枚举操作可能无法执行。
 string ConnMdbStr = "Data Source='" + txtsqlip.Text + "' ;Initial Catalog='" + dataname.Text + "';User ID=sa;Password='" + txtpassword.Text + "'";
                    SqlConnection ConnMdb = new SqlConnection(ConnMdbStr);
                    string SqlText = "SELECT * FROM Group_SGK3 ";
                    SqlDataAdapter da = new SqlDataAdapter(SqlText, ConnMdb);
                    try
                    {
                        //da.Fill(dt);
                        dtData.Clear();
                        da.Fill(dtData);

                    }
                    catch
                    {
                        break;
                    }
                    //}

                    

                    foreach (DataRow dr in dtData.Rows)     //遍历行 in 行的集合
                    {
                        byte[] EDS = new byte[183];
                        EDS[0] = 0x82;  // emm table id
                        EDS[1] = 0x40;   // 
                        EDS[2] = 0x3f;
                        EDS[3] = 0x02;// emm secton length
                        byte[] groupid = HexStrToHexBytes(dr["Group_name"].ToString());
                        EDS[4] = groupid[0];
                        EDS[5] = groupid[1];
                        // emm secton length
                        //发送emm

                    

   foreach (DataRow dr in dtData.Rows) 这句出错了说“集合已修改;枚举操作可能无法执行。”这是怎么回事呢?程序上该怎么改呢?请高人指点!
[解决办法]
foreach (DataRow dr in dtData.Rows.Cast<DataRow>().ToList())


[解决办法]

引用:
   foreach (DataRow dr in dtData.Rows) 这句出错了说“集合已修改;枚举操作可能无法执行。”这是怎么回事呢?程序上该怎么改呢?请高人指点!


foreach里面有代码对dtdata进行添加和移除的操作,这是不允许的。
你可以用中间变量记录一下要增加和移除的对象,循环结束后在进行添加和移除操作
[解决办法]
引用:
经过#1的方法改程序后,执行到byte[] groupid = HexStrToHexBytes(dr["Group_name"].ToString());会提示错误:“此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据”,这是怎么回事呢?

你的程序问题太多,根本没法看。
[解决办法]
你没贴完吧?是不是还有对dtData修改或者增删的代码?
[解决办法]
问题比较多,有些信息你没有提供,比如:是刚进入这个 foreach 的时候报错了,还是在 foreach 内部执行到某一句话的时候报错了?代码要贴完整,有些你可能出错的都不贴出来。
而且你…………没有单步调试吗?先单步调试一下,找到真正出错的语句再说吧!

热点排行