C# 检查数据库中的数据时发生Foreach错误

C# 检查数据库中的数据时发生Foreach错误,c#,C#,我正在编写一小段代码来循环遍历数据库数据。我从数据库中获取行,并希望使用foreach循环一行。然后在foreach中,我正在尝试生成一条控制台消息,以便查看它是否有效 函数Common.Log是我和同事共同开发的函数 代码如下: SqlParameter bonIdParam = new SqlParameter("bonId", bonId); DataTable controleTable = RidderQuery(controleQuery, bonIdParam); DataRow

我正在编写一小段代码来循环遍历数据库数据。我从数据库中获取行,并希望使用foreach循环一行。然后在foreach中,我正在尝试生成一条控制台消息,以便查看它是否有效

函数
Common.Log
是我和同事共同开发的函数

代码如下:

SqlParameter bonIdParam = new SqlParameter("bonId", bonId);
DataTable controleTable = RidderQuery(controleQuery, bonIdParam);
DataRow controleRow = controleTable.Rows[0];

int code= controleRow .Field<int>("CODE");
int productionDone = queryRow.Field<int>("PRODUCTIONDONE"); // 1 = true, 0 = false

foreach(int checkedCode in controleRow .Field<int>("CODE"))
{
    Common.Log(checkedCode.ToString);
}
SqlParameter-bonIdParam=新的SqlParameter(“bonId”,bonId);
DataTable controleTable=RidderQuery(controleQuery,BondParam);
DataRow ControlRow=controleTable.Rows[0];
int code=controleRow.Field(“code”);
int productionDone=queryRow.Field(“productionDone”);//1=真,0=假
foreach(controleRow.字段(“代码”)中的int checkedCode)
{
Common.Log(checkedCode.ToString);
}
我遇到的问题是,foreach循环不工作。是的,我知道这很不清楚,但我不知道如何更好地解释它。 以下是我遇到的错误:

  • 错误3:参数1:无法从“方法组”转换为“字符串”

  • 错误1:foreach语句无法对“int”类型的变量进行操作,因为“int”不包含“GetEnumerator”的公共定义

  • 错误2:与“LocatieVerwerkingWifi.Common.Log(字符串)”匹配的最佳重载方法具有一些无效参数

我可以做些什么来修复这些错误?我认为问题出在这方面:

foreach(int checkedCode in queryRow.Field<int>("CODE"))
foreach(queryRow.Field(“code”)中的int checkedCode)
但我不明白出了什么问题。有人能解释/帮助我解决这个问题吗?

  • controleRow
    是一个
    DataRow
    controleRow.Field(“code”)
    返回一个无法枚举的整型字段
  • 在C#
    中,checkedCode.ToString
    必须是
    checkedCode.ToString()
可能要循环所有行:

foreach(DataRow row in controleTable.Rows)
{
    int checkedCode =  row.Field<int>("CODE");
    Common.Log(checkedCode.ToString());
}

您尚未显示
queryRow
的声明或初始化。另外,
heckedCode.ToString
必须是C#中的
heckedCode.ToString()
。应该像我说的那样进行控制Common.Log是我自己的函数,所以很常见。LogCommon是类,所以常用的函数,比如Log函数感谢awnser,但我只想通过代码循环,而不是通过其他行循环,我可以用同样的方法吗?@CKY:这是什么意思?你想如何让o循环通过一个整数?谁说它是一个整数,我有两个整数CODE@CKY:看看我编辑过的答案。我展示了一种LINQ方法,它选择所有代码并使用
String.Join
将它们用逗号连接起来。
var allCodes = controleTable.AsEnumerable().Select(r => r.Field<int>("CODE"));
Common.Log(string.Join(",", allCodes));