使用C#和SQL Server数据库在WinForms中的图表中添加第二个系列/条形图

使用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 {

我想使用C#和SQL Server在同一图表中添加另一个关于“未决案件”名称的系列。我想在同一张图表上显示“处置案件”和“未决案件”的条形图。我已经为cmd中的处置案例编写了查询。但我很困惑在同一天添加图表中的第二个条形图。这意味着我将有未决案件和已处理案件

方法与SQL查询一起显示在下面

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();
        }