2013-02-11 72 views
1

即時通訊相當新,並且對Linq有一些問題,我認爲靈動會非常簡單。想要從數據庫中檢索數組

我有一個數據庫中的表與以下變量;

名稱 - 字符串

價值 - 浮動

時間 - 日期時間

現在我想打一個特定的名稱爲兩個陣列,包含一個價值觀,另一個時間,以便它會很容易繪製。我已經做了一個控制器,我已經設法訪問數據庫並使用此代碼獲取具體名稱;

 var Names = db.Graphs 
         .Where(r => r.Name.Contains(Name) || 
            string.IsNullOrEmpty(Name)) 
         .Take(10) 

但即時通訊完全停留在如何通過數據庫進行傳輸,獲取兩個數組並將其發送到視圖,其中有我的Highchart圖。

Javascript;

series: [{ 
      name: 'NameOn', 
      data: [23.3, 18.3, 13.9, 9.6] <--- Where i want to insert my data 
     }] 

有關如何檢索數據的任何想法?

+0

這個建議不是關於你的問題,但是,你可以使用[dotNetHighcharts](http://dotnethighcharts.codeplex.com) – 2013-02-11 12:35:34

+0

這似乎是一個很好的實現,但我仍然需要從數據庫中檢索值。 – Tim 2013-02-11 13:39:39

+0

如果你想使用DotnetHighCharts,我會給你一個示例數據格式。 (姓名,值,日期) – 2013-02-11 13:45:56

回答

2

對於irregularTimeChart數據格式是這樣以下

public static Series GetIrregularTimeChartData() 
{ 
    List<Series> Series = new List<Series>(); 

    // get data from db and convert it to chart data (name, value, date) 
    var chartSeries = db.Graphs.GroupBy(x => new { x.Name }) 
         .Select(g => new 
         { 
          Name = g.Key, 
          Data = g.Select(x => x.Value).ToArray(), 
          Date = g.Select(x => x.Date).ToArray() 
         }).ToArray(); 

    // create 2D array => [value, date] 
    foreach (var item in chartSeries) 
    { 
     int lenght = item.Data.Count(); 
     object[,] data = new object[lenght, 2]; 
     for (int i = 0; i < lenght; i++) 
     { 
      data[i, 0] = item.Date[i]; 
      data[i, 1] = item.Data[i]; 
     } 
     Series localSeries = new Series { Name = item.Name, Data = new Data(data) }; 
     Series.Add(localSeries); 
    } 

    return Series; 
} 

集該數據以圖表數據源。您可以使用examples in this page獲取更多信息。

+0

感謝您的回覆! :)我得到; LINQ to Entities不識別方法'Int32 [] ToArray [Int32](System.Collections.Generic.IEnumerable'1 [System.Int32])''方法,並且此方法不能轉換爲存儲表達式。試圖獲得圖表系列。 – Tim 2013-02-11 14:20:56

+0

首先獲取'var list = db.Graphs.ToList()',獲取列表後,對其進行分組。 'var groupped = list.group ...' – 2013-02-11 14:24:34

+0

我用下面的代碼解決了它:.Select(x => x.Temp).OrderBy(x => x).ToArray(); 非常感謝您的幫助AliRiza – Tim 2013-02-11 14:26:14