想要从数据库中检索Array

时间:2013-02-11 12:28:55

标签: c# asp.net-mvc linq highcharts

我对MVC很新,并且对Linq有一些问题,我认为解决方案非常简单。

我在数据库中有一个包含以下变量的表;

名称 - 字符串

价值 - 浮动

时间 - 日期时间

现在我想在两个数组中创建一个特定的名称,一个包含值,另一个包含Time,因此很容易绘制。我已经创建了一个控制器,我已经设法访问数据库并使用此代码获取特定名称;

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

但我完全坚持如何通过数据库进行迭代,得到两个数组并将其发送到我有我的Highchart-plot的View。

的Javascript;

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

有关如何检索数据的想法吗?

1 个答案:

答案 0 :(得分: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获取更多信息。