0
私はプログラミングでは新しく、私はWindowsフォームアプリケーションで作業しています。私はすべての私のデータベースの仕事のための再作成クラスを作った。 IQueryableを返すリポジトリ内の関数を作成しました。これはキーの値のペアを返します(key = dayOfWeekとvalue = revenue)。私はフォームでこの関数を呼び出したとき、ラベルに情報を表示したかったので、別にキーと値を別々にアクセスすることはできません。それは私にキーの値のペア全体のオプションを与えるだけです。私はリポジトリクラスから取得したwinformでIQueryableを返す関数からキーと値にアクセスできません
public class ReportsRepository
{
FruitStoreDataContext db;
public IQueryable RevenuePerDayOfWeek(DateTime startDate, DateTime endDate)
{
db = new FruitStoreDataContext();
var sumPerday = from s in db.OrderDetails
where s.Order.OrderDate >=startDate && s.Order.OrderDate <=endDate
select new
{
day = s.Order.OrderDate.DayOfWeek,
revenue = s.Price * s.Quantity
};
var totalSumPerday = from f in sumPerday
group f.revenue by f.day into g
select new
{
Day= g.Key,
Sum = g.Sum()
};
return totalSumPerday;
}
private void Report1Form_Load(object sender, EventArgs e)
{
ReportsRepository report = new ReportsRepository();
var totalSumPerday = report.RevenuePerDayOfWeek(dateToStart, dateToEnd);
int[]numOfDays = new int[7];
for (DateTime day = dateToStart; day <= dateToEnd; day = day.AddDays(1))
{
dayOfWeek = Convert.ToInt32(day.DayOfWeek);
numOfDays[dayOfWeek]++;
}
Label label;
List<Label> labels = new List<Label>();
int t = 0;
foreach(var totalSum in totalSumPerday)
{
if (numOfDays[dayOfWeek] == 0)
numOfDays[dayOfWeek] = 1;
int y = (38 * t) + 60;
label = new Label();
label.Location = new Point(34, y);
label.Visible = true;
label.Size = new Size(450, 35);
label.BackColor = Color.Gray;
label.ForeColor = Color.White;
label.Font = new Font("Lucida Console", 16);
dayOfWeek = Convert.ToInt16(totalSum.Day.Key);
//on the line below the word 'Day' and 'Sum' are underlined red...it doesn't give me the option to do that. I can only access the whole thing together(key,value)
label.Text = totalSum.Day.ToString() + " : " + (totalSum.Sum/numOfDays[dayOfWeek]).ToString();
labels.Add(label);
panel1.Controls.Add(label);
t++;
}
おかげ億!今は完全に動作します。 –