1

私はasp.net mvc3を初めて使用し、MVC3 razorのChartのstackoverflowで多くの投稿を読んでいます。

ただし、このためのチャートを作成できませんでした。基本的にこれは私のSQLクエリです

SELECT COUNT(RequestStatus) AS Expr1, RequestStatus
FROM Request
GROUP BY RequestStatus

これまでのところ、私のコントロール ビューでは、これが私のコードです。

public ActionResult RequestReport()
{ 
    var result = from p in db.Requests
                 group p by p.RequestStatus into pgroup
                 let count = pgroup.Count()
                 orderby count
                 select new { Count = count, RequestStatus = pgroup.Key }.ToString();

    var x = new [] {result};    

    Chart chart = new Chart(600, 400)
        .AddSeries(yValues: x , yFields:"Count")
    .AddTitle("Request Statistic");

    this.ViewBag.Chart = chart;      

    return View();
}

およびビューで:

@ViewBag.Chart.Write()

この問題を解決するのを手伝ってください。これに関する簡単なチュートリアルが見つかりませんでした。

コントローラーのコードにいくつかの変更を加えました。

using (var db = new ITAMMVCDBEntities())
            {
                var rs = db.Requests.GroupBy(o=>o.RequestStatus).ToList();
                var result = from o in db.Requests
                             group o by o.RequestStatus
                                 into g
                                 select new
                                 {
                                     result = g.Count()
                                 };

            Chart chart = new Chart(600, 400)
                .AddSeries(
                        xValue: rs.Select(x=>x.Key).ToArray() ,
                        yValues: result.ToArray()
                      )
           .AddTitle("Request Statistic");

            this.ViewBag.Chart = chart;      

            return View();
        }

実行時にこのエラーメッセージが表示されるようになりました

Series data points do not support values of type <>f__AnonymousType1`1[System.Int32] only values of these types can be used: Double, Decimal, Single, int, long, uint, ulong, String, DateTime, short, ushort.

グループごとに表示されるため、xValueは問題ないと思いますが、各グループの値を表示するyValueに問題があります

4

0 に答える 0