在foreach循环期间重置数据表

在foreach循环期间重置数据表,foreach,reset,Foreach,Reset,我目前遇到了一个我无法理解的问题: 下面的代码生成一个Datatable outDT,以便稍后填充gridview。datatable是使用从各种SQL语句发出的其他datatable行构建的,这些SQL语句和get函数也返回datatable 当我调用getAverage方法时,问题就出现了。在调用之后,pcDT数据表立即为空,并导致进一步的集合被修改;枚举操作可能无法执行。下一个循环出错 我从未在foreach循环中修改过pcDT数据表的一行,也没有在有问题的getAverage方法中修改过

我目前遇到了一个我无法理解的问题:

下面的代码生成一个Datatable outDT,以便稍后填充gridview。datatable是使用从各种SQL语句发出的其他datatable行构建的,这些SQL语句和get函数也返回datatable

当我调用getAverage方法时,问题就出现了。在调用之后,pcDT数据表立即为空,并导致进一步的集合被修改;枚举操作可能无法执行。下一个循环出错

我从未在foreach循环中修改过pcDT数据表的一行,也没有在有问题的getAverage方法中修改过

    public DataTable getReportTable(int idClient)
    {
        Object thisLock = new Object();

        DataTable outDT = new DataTable();
        outDT.Columns.Add("PC Name");

        DataTable pcDT = getPCNames(idClient);
        *foreach (DataRow pcRow in pcDT.Rows)*
        {
            DataRow outRow = outDT.NewRow();
            outRow["PC Name"] = pcRow["Name"];

            **DataTable collectedDT = getAverage((int)pcRow["idPC"]);**
            foreach (DataRow dataRow in collectedDT.Rows)
            {
                outDT.Columns.Add(dataRow["name"].ToString());
                outRow[dataRow["name"].ToString()] = dataRow["AVG(MeasurePoint.dataValue)"];
            }

            outDT.Rows.Add(outRow);
        }

        return outDT;
    }
*这是因为著名的收藏品被修改了;枚举操作可能无法执行。错误


**这里是重置pcDT数据表的方法调用。此函数只需调用mySQL查询并检索数据表。

没关系,我发现了错误。它位于管理基本SQLQueries的类中;我使用了一个链接到类而不是方法的Datatable实例,因此当我回忆起使用此实例的方法时,我丢失了以前填充的Datatable

我的错:/