for (int i = 1; i < 31; i++)
{
var getData = "SELECT * FROM Test WHERE date = '" + inputDate + "'";
sumKG = 0;
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
inputDate = nextDay.ToString("yyyy-MM-dd");
sumKG += total;
}
@sumKG <br />
}
これは、foreachループが計算で終了したときに同じ日付が格納されたデータベースの各行の計算を行い、forループにジャンプして戻ります。 inputDate
はaddDays(1)
のため翌日になりますが、データベースに何も一致しない日付がある場合は、inputDate
にもう一度追加して、翌日にはいつでもいいです一致するまでfor
までループ!Foreachループが結果を見つけるまで実行します。
この場合、for loop
のポイントは1ヶ月間のデータをチェックすることで、1日がゼロの場合は停止します。これをどのように解決すればよいですか?何か意味がありましたか?
なぜ代わりに計算するSQLを使用しての、それぞれの日のためにC#でこの計算を行いますそれはすべて最初の場所ですか?あなたのテーブル構造、いくつかのサンプルデータと望みの結果を追加するならば、それをすべて計算する単一のSQL文を作成するのに役立つでしょう。 –
この種のロジックをビューモデルから分離しておく必要があります。コントローラですべての計算を行い、結果をビューモデルに表示します。 – Nikola
@ZoharPeled私はその笑を考えなかったが、今はそれを修正した!私は実際にそのheheを行う方法を知っていた! –