在C#,SQL中绘制(X,Y)条形图

问题描述 投票:1回答:1

我试图绘制一个X(周),Y(燃料量)图表,显示每周给定间隔消耗的燃料总量,但是现在图表仅显示燃料量(Y)对日(X) Like this。我怎样才能最好地绘制它,显示每周消耗的所有燃料量。这是绘制当前图形的代码

         private void Load_BTN_Click(object sender, EventArgs e)
    {


           try
         {

             string selectQuery = "Select * from  Fuel_Attendend";
             cmd = new SqlCommand(selectQuery, connection);
        try
        {
            connection.Open();
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                this.chart1.Series["Date"].Points.AddXY(dr.GetString(3), dr.GetInt32(6));

            }

        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

            connection.Close();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
    }

`。这是SQL tableSQL Table

c# sql sql-server graph mschart
1个回答
1
投票

如果要显示每周的金额,最简单的方法是将您的SQL更改为按周分组。就像是...

select sum(Fuel_Amount), DATEDIFF(week, '2018-01-01', Date) AS WeekNumber from Fuel_Attended group by DATEDIFF(week, '2018-01-01', Date)

当您将点添加到系列1时,您将不得不更改用作第一列和第二列的列。

this.chart1.Series["Date"].Points.AddXY(dr.Int32(0), dr.GetInt32(1));

或者你可以使用

select sum(Fuel_Amount), DATEADD(week, DATEDIFF(week, '1950-01-01', Date), '1950-01-01') AS WeekNumber from Fuel_Attended group by DATEADD(week, DATEDIFF(week, '1950-01-01', Date), '1950-01-01')

这样就可以得到星期日开始的星期。而不仅仅是一个数字。

© www.soinside.com 2019 - 2024. All rights reserved.