使用C#和SQL Server数据库在WinForms中的图表中添加第二个系列/条形图
我想使用C#和SQL Server在同一图表中添加另一个关于“未决案件”名称的系列。我想在同一张图表上显示“处置案件”和“未决案件”的条形图。我已经为cmd中的处置案例编写了查询。但我很困惑在同一天添加图表中的第二个条形图。这意味着我将有未决案件和已处理案件 方法与SQL查询一起显示在下面使用C#和SQL Server数据库在WinForms中的图表中添加第二个系列/条形图,c#,winforms,charts,sql-server-2008-r2,C#,Winforms,Charts,Sql Server 2008 R2,我想使用C#和SQL Server在同一图表中添加另一个关于“未决案件”名称的系列。我想在同一张图表上显示“处置案件”和“未决案件”的条形图。我已经为cmd中的处置案例编写了查询。但我很困惑在同一天添加图表中的第二个条形图。这意味着我将有未决案件和已处理案件 方法与SQL查询一起显示在下面 public void ChartReportAllDaily() { DataSet ds = new DataSet(); try {
public void ChartReportAllDaily()
{
DataSet ds = new DataSet();
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT NextDate, COUNT(CaseNo) AS DailyDisposal FROM dbo.Main_Cause_List WHERE (DisposalState = 'Disposed-of') GROUP BY NextDate", conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds, "Main_Cause_List");
chart1.DataSource = ds.Tables["Main_Cause_List"];
chart1.Series["Series1"].XValueMember = "NextDate";
chart1.Series["Series1"].YValueMembers = "DailyDisposal";
// To show chart value
chart1.Series["Series1"].IsValueShownAsLabel = true;
chart1.ChartAreas[0].AxisX.Interval = 1;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 0;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
}
图表类型是条形图还是柱形图?到目前为止,它看起来像什么?它应该如何照顾?
NextDate
是日期还是日期时间?还是一个数字?还是一根绳子??是否已经添加了第二个系列?是的,先生,类型为条形…我想按日期对它们进行分组。如果这些日期是对应的(即没有tme分数),则第二个系列将显示除第一个系列之外的条形。你试过了吗?你有选择的工作吗?我只需要日期不需要时间先生…我不是问你需要什么,而是问你实际拥有什么。这应该是一个答案吗?如果没有,请编辑问题。如果是,请解释!顺便说一句:上面的图表显示的不是条而是列!对不起,我错了…印刷错误先生,,,谢谢你的澄清…@TaW
try
{
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT NextDate, COUNT(CaseNo) AS DailyDisposal FROM dbo.Main_Cause_List WHERE (DisposalState = 'Disposed-of') GROUP BY NextDate", conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds, "Main_Cause_List");
chart1.DataSource = ds.Tables["Main_Cause_List"];
chart1.Series["Series1"].XValueMember = "NextDate";
chart1.Series["Series1"].YValueMembers = "DailyDisposal";
// To show chart value
chart1.Series["Series1"].IsValueShownAsLabel = true;
chart1.ChartAreas[0].AxisX.Interval = 1;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 0;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 0;
//////////////////////////////
SqlCommand cmdd = new SqlCommand("SELECT NextDate, COUNT(CaseNo) AS DailyPending FROM dbo.Main_Cause_List WHERE (DisposalState = 'Pending') GROUP BY NextDate", conn);
SqlDataAdapter daa = new SqlDataAdapter();
daa.SelectCommand = cmdd;
daa.Fill(ds, "Main_Cause_List");
chart1.DataSource = ds.Tables["Main_Cause_List"];
chart1.Series["Series2"].XValueMember = "NextDate";
chart1.Series["Series2"].YValueMembers = "DailyDisposal";
// To show chart value
chart1.Series["Series2"].IsValueShownAsLabel = true;
chart1.ChartAreas[0].AxisX.Interval = 1;
chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineWidth = 0;
chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineWidth = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}