2016-07-22 65 views
0

如果總金額低於5,000,如何更改chartbar的顏色?如果金額不符合條件,則更改圖表的條形顏色

這裏是我的代碼..

 cmd = new MySqlCommand("SELECT DATE_FORMAT(date, '%m-%d-%y') date, SUM(totalamount) totalamt FROM tblsales WHERE month(date) = month(now()) GROUP BY date"); 
     cmd.Connection = dbConn; 

     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), rdr.GetDouble("totalamt")); 
     } 

     rdr.Close(); 

enter image description here

+0

你不說你正在使用哪個圖表庫;答案將取決於其功能。 –

回答

1

您可以通過DataPointColor屬性設置欄的顏色:

chart1.Series[0].Points[i].Color = Color.Red; 

但是沒有表情對於Color屬性,所以無論何時設置或更改數據,都必須設置它。

你可以做到這一點,同時增加了DataPoints

while (rdr.Read()) 
{ 
    int index = this.chart1.Series["Month"].Points.AddXY(rdr["date"].ToString(), 
                 rdr.GetDouble("totalamt")); 
    if (rdr.GetDouble("totalamt") < 5000) 
     this.chart1.Series["Month"].Points[index].Color = Color.Red; 
} 

或者你可以編寫一個函數後,更新色彩:

void SetColors(Series s, Color color, double limit) 
{ 
    foreach (DataPoint dp in s.Points) 
     if (dp.YValues[0] < limit) dp.Color = color; 
} 
0

好像你正在使用ASP.NET圖表。對於相同的,你可以做類似

chart1.Series[0].Color = Color.Green; 

選擇任何顏色適合你作爲根據如果其他條件的值。