0
.Net MVCを使用しています。私はDB Firstアプローチを使用しています。私はスクールデイプログラムが必要ですが、私はピボット、DataTableまたは何か他のものを使うのはどうですか?テーブルから行列を作成する#
SQLの表は、そのようなものです:
WeeklyProgram
Id RoomId Hour Day
1 1 9 1
2 1 12 1
3 2 14 1
4 2 12 2
5 3 11 1
6 4 10 2
そして、このようなヌル細胞とHTMLのテーブルに変換しようとしている:
For Day 1 My School Program is;
# Room1 Room2 Room3
9:00 1 null null
10:00 null null null
11:00 null null 5
12:00 2 null null
13:00 null null null
14:00 null 3 null
が
がpivoting試みたが、カントは、私が考えたものを手に入れます。
ありがとうございます。
UPDATE:私はANSWER
if (!date.HasValue)
date = DateTime.Now;
List<WeeklyProgram> modelBase = table
.Where(b => b.Day == day)
.ToList();
int[] hours = { 9, 10, 11, 12, 13, 14};
List<PivotTable> pivotTable = new List<PivotTable>();
foreach (var hour in hours)
{
PivotTable pivotRow = new PivotTable() { Hour = hour };
foreach (var item in modelBase)
if (item.Hour == hour)
switch (item.RoomId)
{
case 1:
pivotRow.Room1 = item.Id;
break;
case 2:
pivotRow.Room2 = item.Id;
break;
case 3:
pivotRow.Room3 = item.Id;
break;
}
pivotTable.Add(pivotRow);
}
return pivotTable;
見つけた -
public class PivotTable
{
public int Hour { get; set; }
public int Room1 { get; set; }
public int Room2 { get; set; }
public int Room3 { get; set; }
public int Room4 { get; set; }
public int Room5 { get; set; }
}
のC#の以前のバージョンでは、このバージョンを使用することができますGetValueorDefaultはエラーを返します。 https://framapic.org/ZrIXNfT9SYVR/I4TCKpXDxdyy.png –
あなたの写真は表示されません。あなたのホストはプロキシの背後で動作していません。 C#7.0を使用している場合、 'default'を' default(TV) 'で置き換えます。 – NetMage