区分堆积柱形图的列

时间:2016-08-09 14:24:06

标签: c#

我想从mysql数据库中绘制一个堆积图表 我希望有4列名为“port1”,“port2”,“port3”和“port4”。

我的问题是当我从数据库导入数据时,我检查表格中的类型然后我绘制图表。我的DB包含4种类型的端口,因此我将有4列名为port1,port2,port3和port4,但我的代码生成所有数据但在同一列上是port1。

如何添加相同数量的数据点?

This is a part of my code

try
{   
    con.Open();

    string query1 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port1'" ;                             
    string query4 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port4'";
    SqlCommand cmmd = new SqlCommand(query1, con);              
    SqlCommand cmmd4 = new SqlCommand(query4, con);
    SqlDataReader dataReader = cmmd.ExecuteReader();
    while (dataReader.Read())  
    {
        chart1.Series.Add(dataReader["name"].ToString());
        chart1.Series[dataReader["name"].ToString()].ChartType = SeriesChartType.StackedColumn;
        chart1.Series[dataReader["name"].ToString()]["StackedGroupName"] = "Group1";                
        chart1.Series[dataReader["name"].ToString()].Points.AddXY((dataReader["type"].ToString()), dataReader["value"].ToString()); 
    }  

    con.Close();
}
catch (Exception ex)
{
    MessageBox.Show("Error " + ex);
}

1 个答案:

答案 0 :(得分:0)

试             {

            con.Open();

            string query1 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port1'" ;                                      
            SqlCommand cmmd = new SqlCommand(query1, con);              
            SqlDataReader dataReader = cmmd.ExecuteReader();
            while (dataReader.Read())
               {

                chart1.Series.Add(dataReader["name"].ToString());
                chart1.Series[dataReader["name"].ToString()].ChartType = SeriesChartType.StackedColumn;
                chart1.Series[dataReader["name"].ToString()]["StackedGroupName"] = "Group1";                
                chart1.Series[dataReader["name"].ToString()].Points.AddXY((dataReader["type"].ToString()), dataReader["value"].ToString());                    

               }

            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error " + ex);
         }



        try
        {

            con.Open();
            string query2 = "SELECT type,name,value FROM " + server + " WHERE type LIKE '%port2'";
            SqlCommand cmmd2 = new SqlCommand(query2, con);
            SqlDataReader dataReader2 = cmmd2.ExecuteReader();
            while (dataReader2.Read())
            {

                chart1.Series.Add(dataReader2["name"].ToString());

                chart1.Series[dataReader2["name"].ToString()].ChartType = SeriesChartType.StackedColumn;
                chart1.Series[dataReader2["name"].ToString()]["StackedGroupName"] = "Group2";
                // MessageBox.Show(dataReader2["type"].ToString());
               chart1.DataBind();
                chart1.Series[dataReader2["name"].ToString()].Points.AddXY("Port_2", dataReader2["value"].ToString());
                chart1.Series[dataReader2["name"].ToString()]["PointWidth"] = "1";

            }
            con.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show("Error "+ ex);
        }