2015-07-03 29 views
0

我正在嘗試計算我的數據庫中的年齡組並將它們顯示在圖表上。mvc中的圖表中顯示的年齡組

我在下面的代碼中顯示藥物分類和數量在條形圖上。

public JsonResult DrugStatus() 
    { 
     List<Drug> drg = new List<Drug>(); 
     DataContext da = new DataContext(); 
     drg = da.Drugs.ToList(); 

     var chartData = new object[drg.Count + 1]; 
     chartData[0] = new object[]{ 
      "Drug Group", 
      "Drug Quantity" 
     }; 

     int count = 0; 
     foreach (var i in drg) 
     { 
      count++; 
      chartData[count] = new object[] { i.DrugCategory, i.Quantity }; 
     } 

     return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet}; 
    } 

我想做的事情,爲客戶的不同年齡組同樣在我的數據庫,但我有在邏輯問題。

下面是我做了什麼

public JsonResult AgeGroup() 
    { 
     List<Patient> patient = new List<Patient>(); 
     DataContext da = new DataContext(); 

     patient = da.Patients.ToList(); 

     var select = (from a in da.Patients 
         group a by a.Age into g 
         select new 
         { 
          Age = g.Key, 
          Age1 = g.Where(a => Convert.ToInt32(a.Age) >= 13 && Convert.ToInt32(a.Age) <= 18).Count() 
         }); 
     var chartData = new object[patient.Count + 1]; 
     chartData[0] = new object[]{ 
      "Age Group" 
     }; 

     string age1, age2, age3, age4, age5; 
     foreach (Patient p in da.Patients) 
     { 
      int Age = Convert.ToInt32(p.Age); 

      if ((Age >= 13) && (Age <= 18)) 
      { 
       age1 = "13 - 18"; 
      } 

      if ((Age >= 19) && (Age <= 30)) 
      { 
       age2 = "19 - 30"; 
      } 

      if ((Age >= 31) && (Age <= 45)) 
      { 
       age3 = "31 - 45"; 
      } 

      if ((Age >= 46) && (Age <= 60)) 
      { 
       age4 = "46 - 60"; 
      } 

      if (Age >= 61) 
      { 
       age5 = "61 Above"; 
      } 
     } 
    } 

現在我想將它添加到列表,這樣我就可以循環像我在DrugStatus()做

foreach (var i in drg) 
    { 
     count++; 
     chartData[count] = new object[] { i.DrugCategory, i.Quantity }; 
    } 

但首先我想要將值添加到列表中,我該如何去了解這個邏輯......任何幫助?

回答

0

好了後來思考和集中注意力我發現我可以做邏輯並添加到通用列表「類」,我通過創建一個類來存儲值,如下所示。

public class AgeClass 
    { 
     public string AgeG { get; set; } 
     public int count { get; set; } 

     public AgeClass() 
     { 
      AgeG = ""; 
      count = 0; 
     } 

     public AgeClass(string Age, int C) 
     { 
      AgeG = Age; 
      count = C; 
     } 
    } 

後來,我又進行了JsonResult邏輯,寫的邏輯來獲得特定年齡組和指望有多少人屬於特定的年齡組,如下圖所示...

public JsonResult AgeGroup() 
    { 
     List<AgeClass> agc = new List<AgeClass>(); 

     DataContext da = new DataContext(); 

     string age1 = "", age2 = "", age3 = "", age4 = "", age5 = ""; 
     int Count1 = 0, Count2 = 0, Count3 = 0, Count4 = 0, Count5 = 0; 

     foreach (Patient p in da.Patients) 
     { 
      int Age = Convert.ToInt32(p.Age); 

      if ((Age >= 13) && (Age <= 18)) 
      { 
       age1 = "13 - 18"; 
       Count1++; 
      } 

      if ((Age >= 19) && (Age <= 30)) 
      { 
       age2 = "19 - 30"; 
       Count2++; 
      } 

      if ((Age >= 31) && (Age <= 45)) 
      { 
       age3 = "31 - 45"; 
       Count3++; 
      } 

      if ((Age >= 46) && (Age <= 60)) 
      { 
       age4 = "46 - 60"; 
       Count4++; 
      } 

      if (Age >= 61) 
      { 
       age5 = "61 Above"; 
       Count5++; 
      } 
     } 

後獲得所有我繼續將結果添加到我之前創建的AgeClass。

AgeClass obj1 = new AgeClass(age1, Count1); 
     AgeClass obj2 = new AgeClass(age2, Count2); 
     AgeClass obj3 = new AgeClass(age3, Count3); 
     AgeClass obj4 = new AgeClass(age4, Count4); 
     AgeClass obj5 = new AgeClass(age5, Count5); 

     agc.Add(obj1); 
     agc.Add(obj2); 
     agc.Add(obj3); 
     agc.Add(obj4); 
     agc.Add(obj5); 

然後創建的chartData和插入值到它和通過其已持有我的年齡組的數據的AgeClass環..

var chartData = new object[agc.Count + 1]; 
     chartData[0] = new object[]{ 
      "Age Group", 
      "Age Count" 
     }; 

     int count = 0; 
     foreach (var i in agc) 
     { 
      count++; 
      chartData[count] = new object[] { i.AgeG, i.count }; 
     } 

     return new JsonResult { Data = chartData, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
    } 

而在我的柱狀圖視圖顯示它,它工作正常,我希望這可以幫助某人。

而道具Carly Rae Jepsen「情感」專輯,我有重複和巧克力城「堅不可摧的巧克力Boi國家」專輯音樂幫助程序員認爲大聲笑!

想出這個解決方案將非常感激的任何其他方式...感謝