我有这样的数据库记录。



我想显示这样的桌子
  


  天数最多为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/

10-17 01:34