2013-10-29 38 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