C# 如何使用sql和c自定义设置饼图颜色

C# 如何使用sql和c自定义设置饼图颜色,c#,sql,winforms,graph,C#,Sql,Winforms,Graph,我想显示自定义饼图,它让用户选择选项并根据它显示图形 在我的情况下,这是我的数据 我要x轴是全速,y轴是ucp,ibnsiena,海外 SqlCommand cmd1 = new SqlCommand("select Terriotry,UCPVol,IBNSINAVol,OVERSEASVol,TotalAcheivmentVol from ForecastTotal where Terriotry = '" + territory+"' and month ='"+Month+"' and

我想显示自定义饼图,它让用户选择选项并根据它显示图形 在我的情况下,这是我的数据

我要x轴是全速,y轴是ucp,ibnsiena,海外

SqlCommand cmd1 = new SqlCommand("select Terriotry,UCPVol,IBNSINAVol,OVERSEASVol,TotalAcheivmentVol from ForecastTotal where Terriotry = '" + territory+"' and month ='"+Month+"' and year = '"+year+"'", conn);
            try
            {
                conn.Open();
                mydatareader = cmd1.ExecuteReader();
                while (mydatareader.Read())
                {

                    chart1.Series["UCP"].Points.AddXY(mydatareader.GetString(4), mydatareader.GetInt32(1));
                    chart1.Series["Ibnsiena"].Points.AddY(mydatareader.GetInt32(2));
                    chart1.Series["Overseas"].Points.AddY(mydatareader.GetInt32(3));

                    chart1.Series["UCP"]["PieLabelStyle"] = "Outside";
                    chart1.Series["UCP"]["PieLineColor"] = "Black";



                         chart1.DataBind();

                    chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
                    chart1.ChartAreas[0].AxisX.Interval = 1;

                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            conn.Close();
我尝试了这段代码,但只显示了一种蓝色


我想用不同的颜色显示每个数字,以知道哪个数字与哪个列相关

正如TaW在评论中所说的,每个饼图只需要一个系列

以下是显示带有文本的简单饼图的方法:

// Set up the series
var s1 = new Series("s1");
chart1.Series.Add(s1);
s1.ChartType = SeriesChartType.Pie;

// Get your data
var yvalues = new List<int> { 2, 3 }; // fill this list with data from your query
ar xvalues = new List<String> { "foo", "bar" };

// Databind it
s1.Points.DataBindXY(xvalues, yvalues);

据我所知,您可能需要多个饼图:每个地区一个饼图,一个饼图用于比较地区总数。

正如TaW在评论中所说,每个饼图只需要一个系列

以下是显示带有文本的简单饼图的方法:

// Set up the series
var s1 = new Series("s1");
chart1.Series.Add(s1);
s1.ChartType = SeriesChartType.Pie;

// Get your data
var yvalues = new List<int> { 2, 3 }; // fill this list with data from your query
ar xvalues = new List<String> { "foo", "bar" };

// Databind it
s1.Points.DataBindXY(xvalues, yvalues);

据我所知,您可能需要多个饼图:每个地区一个饼图,一个饼图用于比较地区总数。

饼图只使用一个系列!另外:您似乎在混合数据绑定图表,以便更好地绑定系列的点!!和增加点。请决定你想做什么!你能清除plz吗?我不知道哪种方法是发布代码的最好方法?在我的例子中,我想比较3个值,如何在一个系列中做到这一点?我在一个系列中做到了,但我如何使每个部分都是唯一的,我的意思是,我如何在上面放上文本,这真的很难告诉你想要什么,因为代码中充满了奇怪的东西,根本不在一起。通常的方法是:抛出Databind命令。b仅使用一个在循环中添加点的序列。它们将自动具有不同的颜色并显示在图例中。c一旦你得到了更新的问题,我们可以谈论样式和添加文本。。对于饼图,仅使用一个系列!另外:您似乎在混合数据绑定图表,以便更好地绑定系列的点!!和增加点。请决定你想做什么!你能清除plz吗?我不知道哪种方法是发布代码的最好方法?在我的例子中,我想比较3个值,如何在一个系列中做到这一点?我在一个系列中做到了,但我如何使每个部分都是唯一的,我的意思是,我如何在上面放上文本,这真的很难告诉你想要什么,因为代码中充满了奇怪的东西,根本不在一起。通常的方法是:抛出Databind命令。b仅使用一个在循环中添加点的序列。它们将自动具有不同的颜色并显示在图例中。c一旦你得到了更新的问题,我们可以谈论样式和添加文本。。