绘制 Mysql 数据库列计数的图形

本文关键字:图形 Mysql 数据库 绘制 | 更新日期: 2023-09-27 18:36:58

我已经搜索了在 c# 中绘制 sql 计数函数的图形。我正在尝试绘制一个表格,该表格计算每个行标签的条目并在条形图上显示计数。前任:

-Foreman    -count(CommentOne)
   Me                3
   you               2

我正在使用这个:

   chart1.Series.Clear();
   chart1.Series.Add("Series1");
   string Query = "select Foreman,count(CommentOne) from database.scaffoldqcdata where Location='" + cb_location + "' Group by Foreman;";
   MySqlConnection conDataBase = new MySqlConnection(constring);
   MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase);
   MySqlDataReader myReader;
   try
   {
       conDataBase.Open();
       myReader = cmdDataBase.ExecuteReader();
       while (myReader.Read())
       {
           this.chart1.Series["Series1"].Points.AddXY(myReader.GetString("Foreman"), myReader.GetString("CommentOne"));
       }
   }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

它已与其他查询一起使用,但是当我运行此查询时它显示为空白。

绘制 Mysql 数据库列计数的图形

您需要使用列别名在查询中定义CommentOne

select Foreman, count(CommentOne) as CommentOne
from database.scaffoldqcdata
where Location='" + cb_location + "'
Group by Foreman

老实说,我建议不要使用该名称。 相反,像这样:

select Foreman, count(CommentOne) as NumComments
from database.scaffoldqcdata
where Location='" + cb_location + "'
Group by Foreman

并在图表代码中使用此名称:

this.chart1.Series["Series1"].Points.AddXY(myReader.GetString("Foreman"), myReader.GetString("NumComments"));

如果您希望按特定顺序显示结果,则可能还需要包含order by。 您不应该依赖group by来执行任何特定的排序。