【发布时间】:2015-11-07 21:34:19
【问题描述】:
我正在尝试绘制一个包含多个系列的图表。它的数据来自数据库,通过DataAdapter 进入DataTable,就像这样;
public DataTable deaths_per_reason_per_year(string farmerid)
{
dt = new DataTable();
try
{
conn.Open(); // (select formatted to fit SO lines)
SqlCommand cmd = new SqlCommand("SELECT DATEPART(yyyy, DeathDate) AS 'Year',
Reason,
COUNT(DeathID) AS 'Number of Deaths' FROM [Farmstat_V1.0].[dbo].[Death]
WHERE FarmerID = '" + farmerid + "'
GROUP BY Reason, YEAR(DeathDate);", conn);
SqlDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
}
catch (Exception)
{
throw;
}
finally
{
conn.Close();
}
return dt;
}
这给了我以下输出;
当我尝试将 DataTable 分配给表单上的图表时,使用这个;
StatsDataAccess sda = new StatsDataAccess();
chart1.DataSource = sda.deaths_per_reason_per_year(FarmerID);
chart1.Series["Series1"].XValueMember = "Year";
chart1.Series["Series1"].YValueMembers = "Number of Deaths";
chart1.Series["Series2"].XValueMember = "Reason";
chart1.Series["Series2"].YValueMembers = "Number of Deaths";
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
chart1.Series["Series1"].IsValueShownAsLabel = true;
chart1.DataBind();
我得到一个看起来像这样的绘制图形,我已经通过图表的属性窗格在其中添加了系列;
但我想要一个看起来像这样的输出;
我试过用谷歌搜索但没有成功。有人可以帮我吗? 我会非常感激。 谢谢
【问题讨论】: