javascript - 如何使用chart.js将来自mysql的数据显示为饼图?

标签 javascript c# mysql

我想在饼图中显示下表中的俱乐部名称和 child 人数

This is the table form mysql

这是我创建的 PieChart Web 表单的后台代码:

public partial class PieChart : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)
{

}


string club_name;
int no_children;

public int TargetClub_No()

{


    string CS = ConfigurationManager.ConnectionStrings["dbyouthworkConnectionString"].ConnectionString;
    using (MySqlConnection con = new MySqlConnection(CS))
    {
        MySqlCommand cmd = new MySqlCommand("SELECT no_children, club_name FROM pie_chart WHERE club_name = 'Target Club'", con);



        con.Open();
        MySqlDataReader rdr = cmd.ExecuteReader();
        while (rdr.Read())
        {

            club_name = rdr["club_name"].ToString();
            no_children = Convert.ToInt32(rdr["no_children"]);

        }
          return no_children;

    }


}

}

我已经下载了js.chart文件和jquery文件

这是我创建的 PieChart.aspx 文件中的代码:

<body>
<form id="form1" runat="server">
 <canvas id="mycanvas" width="256" height="256"></canvas>
<script>
    $(document).ready(function () {
        var ctx = $("#mycanvas").get(0).getContext("2d");
        // pie chart data

        var t = <% TargetClub_No(); %>; 
        var data = [
        {
            value: t,
            color: "cornflowerblue",
            highlight: "lightskyblue",
            label: "Target Club"
        },
        {
            value: 50,
            color: "lightgreen",
            highlight: "yellowgreen",
            label: "Lightgreen"
        },
        {
            value: 40,
            color: "orange",
            highlight: "darkorange",
            label: "Orange"
        }

        ];


        //draw
        var piechart = new Chart(ctx).Pie(data);
    });
</script>

<div>

</div>
</form>

*在这里,我首先尝试输入目标俱乐部的 child 数量,但是当我运行代码时,我得到一个空白页面而不是饼图

使用 Chrome 中的开发工具的屏幕截图: 这表明我在调用“public int TargetClub_No()”时做错了什么 enter image description here

这是网络选项卡的屏幕截图: enter image description here

但不确定这个选项卡的含义...

最佳答案

首先,你的 JS 中有语法错误。 这部分:

var t = '<% TargetClub_No(); %>' 
//var data = [

应该看起来像这样:

var t = <%= TargetClub_No() %>;
var data = [

现在您的 C# 方法 TargetClub_No() 需要返回一个值来分配给 t。 对于您首先尝试做的事情,您想要返回目标俱乐部的 child 数量。像这样:

public int TargetClub_No()
{
    ...
    //nothing else needs to change
    ...

    return no_children;
}

最终,您可能希望您的方法 TargetClub_No() 以可以直接将其分配给数据的方式返回所有数据。

这里有一篇文章完全符合您的要求(甚至更多):
Chart.js Asp.net : Create Pie chart with database jQuery Ajax C#

关于javascript - 如何使用chart.js将来自mysql的数据显示为饼图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736847/

相关文章:

javascript - 将对象数组从 JavaScript 转换为 COM 变体数组

javascript - 单击按钮时如何打开到同一选项卡的链接?

MySQL - 相关子查询失败,where 子句中的列未知

c# - 学习 MySql 的最佳方式

c# - 为什么这个 Silverlight 附加属性不起作用?

php - DHT11 温度/湿度传感器 Web 服务错误

MySQL LEFT Join - 基于 <> 运算符的输出

javascript - Javascript 6 中的字典和 map 有什么区别?

javascript - 如何为表中的多个数据创建 AJAX POST 按钮?

c# - 在独立应用程序中播放嵌入式WAV