好的,我将保持这么简短。
for (int i = 1; i < 3; i++)
{
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
sumKG += total;
}
@sumKG <br />
}
因此,此处的代码在每次total
循环时都会对foreach
进行计算,每个循环都会给sumKG
一个大的总计,但for loop
会使foreach
成为sumKG
foreach loop
再次循环,它应该,并且由于我也有其他sql代码对新数据进行新计算,但是,它将新计算添加到sumKG
的旧值。所以在这种情况下,我知道第一个 <button id="cmdSave" type="button" class="btn btn-primary" onclick="SaveInfo();">Save</button>
将给出23000到 <input id="fileupload" type="file" name="files[]" style="display: none;">
,第二轮它将给出5000,但在这种情况下它给我23000,然后是28000(23000 + 5000),并且所以,我不想这样,我想要23000然后5000.
这有什么意义吗?有什么解决方案吗?
答案 0 :(得分:2)
在再次循环之前将变量设置为零:
for (int i = 1; i < 3; i++)
{
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
sumKG += total;
}
@sumKG <br />
@sumKG = 0;
}
或者不要使用+=
for (int i = 1; i < 3; i++)
{
var total = 0;
foreach (var c in db.Query(getData))
{
total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
}
@sumKG = total;
@sumKG <br />
}