locked
Query Linq en chart RRS feed

  • Pregunta

  • Hola saludos a todas/os necesito ayuda para mostrar el count de una query en linq y mostrarlo en un char tengo este codigo de ejemplo

    var consulta = (from resultado in context.Padrons
                               where resultado.Mesa == 1
                               select resultado).Count();
                Chart1.DataSource = consulta;
                Chart1.DataBind();

    pero me sale error

     El origen de datos no es un tipo válido. Deber ser IListSource, IEnumerable o IDataSource

    desde ya gracias

    lunes, 6 de abril de 2015 0:04

Respuestas

  • hola

    pero entiendes que un Count() no se puede graficar ya que solo es un dato simple

    quizas debas asignar el grafico un linq como ser

    var consulta = (from resultado in context.Padrons
                              group resultado by resultado.Mesa in g
                               select new {
                                    mesa = g.Key,
                                    cantidad = g.Count()
                               }).ToList();

    en este caso cuentas pero agrupando por mesa

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta EnzoTuc40 martes, 7 de abril de 2015 12:35
    lunes, 6 de abril de 2015 23:01

Todas las respuestas

  • hola

    >>El origen de datos no es un tipo válido. Deber ser IListSource, IEnumerable o IDataSource

    no puedes representar un simple count en un chart, tienes que asignar una lista de valores

    me pregunto sabes como funciona el control chart ? imagino conoces este representa un conjunto de datos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 6 de abril de 2015 0:54
  • No entiendo para que quieres graficar un único punto (porque el count solo te devolverá un valor entero), de todas maneras te adiciono un ejemplo en el que puedes ir adicionando punto a punto una gráfica, espero te sirva.

    SeriesChartType a = SeriesChartType.FastLine;
    
    
    chrEstadisticasLiquidos.Series.Add("Saldos Iniciales");
    chrEstadisticasLiquidos.Series["Saldos Iniciales"].ChartType = a;
    chrEstadisticasLiquidos.Series["Saldos Iniciales"].IsValueShownAsLabel = false;
    chrEstadisticasLiquidos.Series["Saldos Iniciales"]["ShowMarkerLines"] = "True";
    CSaldos objSaldo = new CSaldos();
    foreach (SPLIQ_OBTENER_SALDOS_INICIALES_MES_Resultado ent in objSaldo.obtenerSaldosInicialesMes(Session[CVariablesSesion.idEESS].ToString(), combustible, int.Parse(ddlAño.SelectedItem.Value), int.Parse(ddlMes.SelectedItem.Value)))
    {
        chrEstadisticasLiquidos.Series["Saldos Iniciales"].Points.AddY(ent.LITROS_SALDO);
        cSI++;
        saldoI[cSI] = ent.LITROS_SALDO;
        sSI += ent.LITROS_SALDO;
    }

    chrEstadisticasLiquidos es el chart, obtenerSaldosInicialesMes retorna un List de dato complejo de una consulta a BD, bueno lo del foreachlo puedes acomodar a tus necesidades (para probar lo puedes hacer un con un for del 1 al 10), bueno la clave es:

    chrEstadisticasLiquidos.Series["Saldos Iniciales"].Points.AddY(ent.LITROS_SALDO);


    Roy Sillerico

    lunes, 6 de abril de 2015 13:13
  • Hola no no quiero graficar un unico punto tengo una tabla que es el padron electoral de tucuman luego tengo una tabla similar que llamo padron propio los mismos campos que la del padron general en esta tabla voy grabando electores de acuerdo a planillas a estos registros los filtro por departamentos, localidades, circuitos, esculeas y mesas la idea es mostrar en un webform los dropdownlist del filtro y consultar en las 2 tablas para mostrar como va la carga de electores por ejemplo de la tabla general la mesa 1 tiene 354 y en el padronpropio tiene cargado 35 registros la idea es ir mostrando la cantidad de datos ingresados a estas consultas ya las hice y las muestros en 2 gridview distintos ahora a modo mas practico quisiera mostrar esto en un chart gracias
    lunes, 6 de abril de 2015 22:39
  • hola

    pero entiendes que un Count() no se puede graficar ya que solo es un dato simple

    quizas debas asignar el grafico un linq como ser

    var consulta = (from resultado in context.Padrons
                              group resultado by resultado.Mesa in g
                               select new {
                                    mesa = g.Key,
                                    cantidad = g.Count()
                               }).ToList();

    en este caso cuentas pero agrupando por mesa

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta EnzoTuc40 martes, 7 de abril de 2015 12:35
    lunes, 6 de abril de 2015 23:01
  • Gracias leandro funciono ahora me toca adaptar las distintas consultas
    martes, 7 de abril de 2015 12:35