2013-10-29 112 views
1

我有这样的数据库记录。显示记录在表

My Records

我想说明一个表像这样 Table to show Like

的天数上升到32,默认为1至32.我必须插入 记录天的比赛,其中。

因为我试过的方法太麻烦了,也不起作用。 你们可以建议我做一些方法吗? 我需要在HTML表格中显示它。 任何语言都是好的。我只是需要这个想法。 最好MVC C#

UPDATE 谢谢两位......我从你们俩(无限制和乔·伊诺斯)有想法,我做到了。你能帮助我解决同样的问题吗?如果Area 1在同一天有另一个2 hours的记录怎么办?我需要向他们展示separately。我将如何在同一天显示记录?

enter image description here

+0

你是从数据库中提取数据?如果是的话,那么检查'pivot'。它可能有帮助。 – unlimit

+0

使用枢轴只有1个值(小时在这里)是好的。但我实际上有多个值(2-3数据)显示,为此,可悲的支点是真的不是使用的东西。 – Ruchan

+0

我想你必须循环访问数据并自己创建表。 – unlimit

回答

2

你可以试试这样的事情,我还没有检查的语法等

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字典。

也许这会给你一些关于如何去解决这个问题的提示。

+1

您不需要将数组重新分配到字典('data [record [“location”]] = days;')。它是一个数组(参考类型),您从字典中提取数据并设置其中一个值。你可以完全放弃这条线,因为它是相同的参考,你很好。 –

+0

@JoeEnos谢谢你让我知道,更新了答案。 – unlimit

+0

谢谢你们两个......我从你们两个人那里得到了想法,我做到了。你们能帮助我解决同样的问题吗?如果'区域1在同一天有另一个12小时的记录怎么办?我将如何在同一天显示记录? – Ruchan

2

你会想你的数据转换成更实用的东西。一旦你这样做,把它变成行很容易。

为32个槽中的每一个构建一个表示一个区域的类,其中包含一组值。当你正在阅读的数据,填入适当的值数组中,是这样的:

class Area { 
    public Area() { Values = new int[32]; } 
    public int[] Values { get; set; } 
    public int AreaNumber { get; set; } 
} 

var areas = new List<Area>(); 
foreach (var record in databaseRecords) { 
    var area = // find area from list based on AreaNumber. If not there, add it 
    area[record.Day - 1] = record.Hour; 
} 

现在你已经有了区域的列表,每个有32项阵列。现在您的HTML表格可以用两级循环来构建,首先遍历所有区域,然后遍历数组中的32个项目。

+0

我会尝试这种方法。 TY – Ruchan