我有这样的数据库记录。
我想显示这样的桌子
天数最多为32,默认为1到32。我必须插入
记录日期匹配的地方。
因为我尝试的方法太杂乱,而且无法正常工作。
你们能建议我一些方法吗?
我需要在HTML表中显示它。
任何一种语言都是好..我只需要一个主意。
最好是MVC C#
更新
谢谢你们两个……我从你们两个(无限和Joe Enos)那里得到了想法,我做到了。您能再解决一个同样的问题吗?如果Area 1
在同一天有另一个2 hours
记录怎么办。我需要给他们看separately
。我将如何在当天显示记录?
最佳答案
您可以尝试类似的方法,但我尚未检查语法的正确性等。
Dictionary<string,int[]> data = new Dictionary<string,int[]>();
foreach (var record in database)
{
if (!data.ContainsKey(record["location"]))
{
int[] days = new int[32];
days[record["day"]] = record["hour"];
data.Add(record["location"], days);
}
else
{
int[] days = data[record["location"]];
days[record["day"]] = record["hour"];
//data[record["location"]] = days;
}
}
变量
data
应该具有所需格式的数据。然后,您可以循环浏览并填充html表。编辑以回应OP的评论
如果每天有多个小时,而该小时数不是固定的,则可以使用类似的方法。
Dictionary<string,ArrayList> day = new Dictionary<string,ArrayList>();
Dictionary<string,day> location = new Dictionary<string,day>();
在这里,
day
词典将包含像Day 1, Day 2, Day 3, etc...
这样的键,而值ArrayList
将在当天保留一个小时数组。location
词典将包含像Area 1, Area 2, etc...
这样的键,并且值将是day
词典。也许这会给您一些有关如何解决此问题的提示。
关于c# - 在表中显示记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19651785/