none
Como graficar con chart RRS feed

  • Pregunta

  • Hola buena tarde a todos.


    Estoy graficando una tabla que tiene los siguientes valores:

    Agosto    UAP1    1200
    Agosto    UAP2    700
    Agosto    UAP3    800
    Agosto    UAP4    1000
    Septiembre    UAP1    1500
    Septiembre    UAP2    500
    Septiembre    UAP3    400
    Septiembre    UAP4    500
    Octubre    UAP1    800
    Octubre    UAP2    900
    Octubre    UAP3    400
    Octubre    UAP4    350

    Lo que quiero es que me grafique el mes con sus respectivos valores, debajo de la grafica del mes de agosto aparescan las 4 barras con sus valores pero lo hago uno por uno y eso no es muy optimo.


    este es mi codigo.

     public void UAP2()
            {

                string[] mes = new string[4];
                string[] uap = new string[4];
                int[] total = new int[4];


                con.Open();
                SqlCommand cmd = new SqlCommand("SELECT CASE WHEN DATEPART(MONTH, FECHA) = 1 THEN 'ENERO' WHEN DATEPART(MONTH, FECHA) = 2 THEN 'FEBRERO' WHEN DATEPART(MONTH, FECHA) = 3 THEN 'MARZO' WHEN DATEPART(MONTH, FECHA) = 4 THEN 'ABRIL' WHEN DATEPART(MONTH, FECHA) = 5 THEN 'MAYO' WHEN DATEPART(MONTH, FECHA) = 6 THEN 'JUNIO' WHEN DATEPART(MONTH, FECHA) = 7 THEN 'JULIO'   WHEN DATEPART(MONTH, FECHA) = 8 THEN 'AGOSTO' WHEN DATEPART(MONTH, FECHA) = 9 THEN 'SEPTIEMBRE' WHEN DATEPART(MONTH, FECHA) = 10 THEN 'OCTUBRE' WHEN DATEPART(MONTH, FECHA) = 11 THEN 'NOVIEMBRE' WHEN DATEPART(MONTH, FECHA) = 12 THEN 'DICIEMBRE' END AS MES, UAP, SUM(DUAP) AS TOTAL FROM[PPMS VW] WHERE MONTH(FECHA) = 9 GROUP BY UAP, DATEPART(MONTH, FECHA)", con);
                SqlDataReader leer = cmd.ExecuteReader();

                int contador = 0;

                while (leer.Read())
                {
                    mes[contador] = leer.GetString(0);
                    uap[contador] = leer.GetString(1);
                    total[contador] = leer.GetInt32(2);
                    contador++;
                }
                leer.Close();
              
                for (int i = 0; i < total.Length; i++)
                {
                    chart1.Series[i].Points.AddXY(mes[i], total[i]);
                    chart1.ChartAreas[0].AxisX.LabelStyle.Angle = -45;
                }
                con.Close();
            }

    Lo que quiero es que se grafique todo lo existente en una sola consulta y no una por una que es lo que hago en la imagen  siguienteConsulta




    miércoles, 2 de octubre de 2019 21:04

Todas las respuestas