C# foreach语句不能对类型为';System.Data.DataSet';

C# foreach语句不能对类型为';System.Data.DataSet';,c#,asp.net,foreach,C#,Asp.net,Foreach,我正在尝试为图像创建缩略图,并在DataGrid中显示该缩略图。我以前也做过类似的事情,但这段代码有点不同,我在foreach上遇到了这个错误: 错误2185 foreach语句无法对类型为的变量进行操作 “System.Data.DataSet”因为“System.Data.DataSet”不包含 “GetEnumerator”的公共定义 我试图复制类似的代码: protected void LoadDockets(int JobID) { if (Request.QueryStrin

我正在尝试为图像创建缩略图,并在DataGrid中显示该缩略图。我以前也做过类似的事情,但这段代码有点不同,我在foreach上遇到了这个错误:

错误2185 foreach语句无法对类型为的变量进行操作 “System.Data.DataSet”因为“System.Data.DataSet”不包含 “GetEnumerator”的公共定义

我试图复制类似的代码:

protected void LoadDockets(int JobID)
    {
if (Request.QueryString["type"] == "dbrief")
        {
            int DbriefCount = 1;

            List<JobPieceSerialNo> Serials = JobPieceSerialNo.GetJobPieceSerialsByJob(JobID);
            foreach (JobPieceSerialNo serNo in Serials)
            {
                tabsPOD.Controls.Add(GetDivDbrief(DbriefCount, serNo));
                DbriefCount++;
            }
        }
}
protectedvoidloaddockets(int-JobID)
{
if(Request.QueryString[“type”]=“dbrief”)
{
int DbriefCount=1;
List Serials=jobbieserialno.getjobbieserialsbyjob(JobID);
foreach(作业段序列号序列号)
{
tabsPOD.Controls.Add(GetDivDbrief(DbriefCount,serNo));
DbriefCount++;
}
}
}

问题是GetVehicleFromReg保存在名为DataUtilities的文件中,但车辆的所有属性都保存在名为vehicles的类文件中

数据集是表的容器。因此,您可以枚举
myDataSet.Tables
。这是一个
数据表集合


另请参见MSDN:

数据集由表列表组成。然后,每个表都包含一个行列表。因此,不能简单地在数据集上执行foreach。相反,您需要遍历每个表,对于每个表,需要遍历每一行。下面是一个通用的工作示例,介绍如何循环遍历数据集所有表中的所有行

private void PrintRows(DataSet dataSet)
{
    // For each table in the DataSet, print the row values. 
    foreach(DataTable table in dataSet.Tables)
    {
        foreach(DataRow row in table.Rows)
        {
            foreach (DataColumn column in table.Columns)
            {
                Console.WriteLine(row[column]);
            }
        }
    }
}

问题是,数据集表示整个数据,包括表和行。 您无法迭代它。您可以迭代所有表:

foreach(DataTable table in dataSet.Tables)
甚至比表中的所有行还要多:

foreach(DataRow row in table.Rows)
如果我可以假设您的数据集中只有一个表,那么您可以编写如下内容:

foreach(DataRow row in veh.Tables[0].Rows)

但id取决于数据集的确切数据结构。

只能使用foreach循环中从IEnumerable继承的类型的对象。IEnumerable具有getEnumerator()方法,用于迭代元素。 Foreach在内部调用这个GetEnumerator来遍历元素。这就是错误状态。 DataSet具有可用于迭代的表属性

foreach(DataTable table in dataSet.Tables)

GetVehicleFromReg的返回类型是什么??只能在foreach中使用IEnumerable对象
foreach(DataTable table in dataSet.Tables)