我正在尝试在foreach循环中执行存储过程,如下所示:
foreach (var p in results)
{
string InputOne = year.ToString();
char c = '0';
string InputTwo = month.ToString().PadLeft(2, c);
List<Entity> data = new List<Entity>();
SqlParameter Param1 = new SqlParameter("@Param1", "Month");
SqlParameter Param2 = new SqlParameter("@Param2", p.Id);
SqlParameter Param3 = new SqlParameter("@Param3", InputOne);
SqlParameter Param4 = new SqlParameter("@Param4", InputTwo);
string usp = "Schema.usp_spname @Param1, @Param2, @Param3, @Param4";
data = _dbContext._sp_GetEmployeeAttendanceData.FromSql(usp, Param1, Param2, Param3, Param4).ToList();
}
我在所有条件下都获得相同的数据,而我的数据库包含不同的数据。
请帮助我解决这个问题!
答案 0 :(得分:0)
循环的最后一行
数据=
会在每次迭代中替换数据变量,因此您只会得到该 For循环中的最后一个迭代。您需要对其进行更改,以使(data =)部分追加到列表。如果数据是列表,则可以使用data.AddRange()
这行List<Entity> data = new List<Entity>();
需要移到循环之外