使用数据库数据在 google 图表上显示报告

Using database data to display reports on google charts

我对报告和 mvc 还很陌生。我正在尝试获取我的数据库数据来填充我的报告。到目前为止,我的报告都是硬编码的,但我尝试使用从 Return count using raw query, using Entity Framework and MVC 获得的原始查询函数来帮助我。 然而,我仍在努力让图表显示数据库数据。

报告视图:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    google.setOnLoadCallback(drawChart);

    var sql = "SELECT COUNT(*) FROM dbo.School WHERE (SchoolName = Accountancy)";
    var total = _context.Database.SqlQuery < int > (sql).single();

    function drawChart() {                                
        var data = google.visualization.arrayToDataTable([
                       ['Task', 'Hours per Day'],
                       ['Accountancy', total],
                       ['Economics and Business', 2],
                       ['Law', 2],
                       ['Governance', 2],
                       ['Business', 7]
                   ]);

        var options = {
                          title: 'Sample (Until we figure out how to get database data)'
                      };

        var chart = new google.visualization.PieChart(document.getElementById('piechart'));

        chart.draw(data, options);
    }
</script>

<div id="piechart" style="width:800px; height: 600px;"></div>
</div>

我试图显示 "Accounting" 字段,但图表没有显示会计总计,它只显示其他(硬编码)的总计

是否有任何特定的代码需要编码才能获取此数据,例如在控制器中?..提醒一下我对此很陌生

您提到的问题显示的是 C# 代码。我知道这可能会混淆 var 的使用(我不是 C# 中 var 的忠实粉丝)。我不确定 MVC 3 的执行方式是什么,但您不能直接混合客户端和服务器端代码。在更高版本的 MVC 中,我认为您可以使用 Razor 语法将服务器端查询结果绑定到客户端 javascript 代码。

另外一条建议:采取小步骤。如果你从来没有做过这样的事情,你就会一下子陷入很多概念。您需要同时学习 SQL、Entity Framework、Asp.net-mvc、Javascript 和 Google 图表 API 才能实现这一目标.

首先尝试在页面上显示数字,然后再尝试显示复杂的交互式图表。就此而言,在执行此操作之前,您需要了解如何将数据从 SQL 提取到服务器的内存中。