为什么我的代码没有迭代?
Why is my code not iterating?
为什么我的代码没有按预期工作?其他(departmentName、employeeName 和 statusDescription)正在工作(如下所示)
int countRow = 1;
//Query for account status
var query = from emp in db.EmployeeDetails
join stat in db.Status on emp.statusId equals stat.statusId
join dep in db.Department on emp.departmentId equals dep.departmentId
where emp.employeeName == name
select new { emp, stat, dep };
foreach (var q in query)
{
Console.WriteLine("{0,-3} | {1,-10} | {2,10}\t\t | {3,10}",
countRow,
q.dep.departmentName,
q.emp.employeeName,
q.stat.statusDescription);
Console.WriteLine("-----------");
countRow++;// <---------not adding: output keeps printing 1
}
它在工作,但我的 countRow
的值一直为 1
现在,我的输出如下所示:
No. Dep Name Status
1 Finance John Present
1 Education Mary Present
1 Recreational Tom Absent
我要找的是这个:
No. Dep Name Status
1 Finance John Present
2 Education Mary Present
3 Recreational Tom Absent
更新:
看来我的 "query"(在查询中的 foreach var q 中)的计数值为 1。我想这就是我的问题的原因。有谁知道我该如何解决这个问题?
您似乎发布了多个查询的结果。
您的原始查询查找特定名称 (emp.employeeName == name
),它可能会产生一个结果。您发布的结果中有多个名称,这意味着您 运行 此查询不止一次(可能在封闭循环中?)。每个查询都会将 countRow
初始化为 1,因此每次都会得到相同的数字。
如果您有多个同名员工,您会看到 1 以外的数字。正如评论所建议的那样,尝试找到封闭循环并将 countRow = 1
初始值设定项移到那里。
为什么我的代码没有按预期工作?其他(departmentName、employeeName 和 statusDescription)正在工作(如下所示)
int countRow = 1;
//Query for account status
var query = from emp in db.EmployeeDetails
join stat in db.Status on emp.statusId equals stat.statusId
join dep in db.Department on emp.departmentId equals dep.departmentId
where emp.employeeName == name
select new { emp, stat, dep };
foreach (var q in query)
{
Console.WriteLine("{0,-3} | {1,-10} | {2,10}\t\t | {3,10}",
countRow,
q.dep.departmentName,
q.emp.employeeName,
q.stat.statusDescription);
Console.WriteLine("-----------");
countRow++;// <---------not adding: output keeps printing 1
}
它在工作,但我的 countRow
的值一直为 1
现在,我的输出如下所示:
No. Dep Name Status
1 Finance John Present
1 Education Mary Present
1 Recreational Tom Absent
我要找的是这个:
No. Dep Name Status
1 Finance John Present
2 Education Mary Present
3 Recreational Tom Absent
更新: 看来我的 "query"(在查询中的 foreach var q 中)的计数值为 1。我想这就是我的问题的原因。有谁知道我该如何解决这个问题?
您似乎发布了多个查询的结果。
您的原始查询查找特定名称 (emp.employeeName == name
),它可能会产生一个结果。您发布的结果中有多个名称,这意味着您 运行 此查询不止一次(可能在封闭循环中?)。每个查询都会将 countRow
初始化为 1,因此每次都会得到相同的数字。
如果您有多个同名员工,您会看到 1 以外的数字。正如评论所建议的那样,尝试找到封闭循环并将 countRow = 1
初始值设定项移到那里。