2013-10-30 46 views
0

我無法將不同的sql列綁定到餅圖的y值。我想創建一個餅圖,其中每個列表示餅圖中的一個切片,因此我想要例如在一個餅圖中將列A,列B和列C的總和作爲切片。ASP餅圖將多個列綁定到y值

這是我的代碼:

 conn = new SqlConnection(ConfigurationManager.ConnectionStrings["OPSConnection"].ConnectionString); 
     string query = "SELECT SUM(Pick.Colli) AS TotalPick, SUM(Pack.Colli) AS TotalPack, Pack.Person_pack AS persoon FROM Pick CROSS JOIN Pack WHERE person_pack = 'annem2' GROUP BY person_pack"; 
     SqlCommand cmd = new SqlCommand(query, conn); 
     conn.Open(); 

     Chart1.DataSource = cmd.ExecuteReader(); 
     Series Series1 = new Series(); 
     Series1.XValueMember = "Person"; 
     Series1.YValueMembers = "TotalPick" + "TotalPack"; 

     Chart1.Series.Add(Series1); 

     Chart1.Series[0].ChartType = SeriesChartType.Pie; 

     Chart1.DataBind(); 
     conn.Close(); 

我也嘗試過多種系列和points.databindXY但也沒有爲我工作。

編輯1.0:

我做了一些改變,但它仍然沒有工作,沒有任何人知道我在做什麼錯?

 conn = new SqlConnection(ConfigurationManager.ConnectionStrings["OPSConnection"].ConnectionString); 
     string query = "SELECT SUM(Pick.Colli) AS TotalPick, SUM(Pack.Colli) AS TotalPack, Pack.Person_pack AS persoon FROM Pick CROSS JOIN Pack WHERE person_pack = 'annem2' GROUP BY person_pack"; 
     SqlCommand cmd = new SqlCommand(query, conn); 
     conn.Open(); 

     SqlDataReader read = cmd.ExecuteReader(); 

     Chart1.DataSource = read; 
     Series Series1 = new Series(); 
     Series1.YValuesPerPoint = 2; 
     Series1.Points.DataBindXY(read, "Person", read, "TotalPack,TotalPick"); 

     Chart1.Series.Add(Series1); 

     Chart1.Series[0].ChartType = SeriesChartType.Pie; 
     Chart1.Series[0].ToolTip = "#VALY"; 

     Chart1.DataBind(); 

     conn.Close(); 

回答

0

問題是固定的:

conn = new SqlConnection(ConfigurationManager.ConnectionStrings["OPSConnection"].ConnectionString); 
    string query = "SELECT SUM(Pick.Colli) AS TotalPick, SUM(Pack.Colli) AS TotalPack, Pack.Person_pack AS persoon FROM Pick CROSS JOIN Pack WHERE person_pack = 'annem2' GROUP BY person_pack"; 
    SqlCommand cmd = new SqlCommand(query, conn); 
    conn.Open(); 

    SqlDataReader sqlReader = cmd.ExecuteReader(); 


     Series Series1 = new Series(); 
     Chart1.Series.Add(Series1); 

     Series1.YValuesPerPoint = 2; 

     DataTable dt = new DataTable(); 

     dt.Columns.Add(new DataColumn("Personen")); 
     dt.Columns.Add(new DataColumn("Total")); 


     while (sqlReader.Read()) 
     { 
      dt.Rows.Add(sqlReader.GetValue(2),sqlReader.GetValue(0)); 
      dt.Rows.Add(sqlReader.GetValue(2), sqlReader.GetValue(1)); 
     } 


     Chart1.Series[0].XValueMember = "Personen"; 
     Chart1.Series[0].YValueMembers = "Total"; 

     Chart1.DataSource = dt; 

     Chart1.Series[0].ChartType = SeriesChartType.Pie; 
     Chart1.Series[0].ToolTip = "#VALY"; 

     Chart1.DataBind(); 

    conn.Close();