我试图绘制一个X(周),Y(燃料量)图表,显示每周给定间隔消耗的燃料总量,但是现在图表仅显示燃料量(Y)对日(X) 。我怎样才能最好地绘制它,显示每周消耗的所有燃料量。这是绘制当前图形的代码
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更改为按周分组。就像是...
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')
这样就可以得到星期日开始的星期。而不仅仅是一个数字。