none
Como consultar (LINQ) sumas de algunos campos directamente desde un BindingSource? RRS feed

  • Pregunta

  •  

    Hola a todos, buenas noches...

    Estoy trabajando en un proyecto, donde manejo un datagridview, enlazado a un bindingsource (myBindingSource),  al cual le aplico varios filtros y como resultado obtengo  subtotales de algunos de sus campos (Segun lo filtrado).

    Utilizo el sig. codigo: 

     

     

                DataView dv  = (DataView) myBindingSource.List;
                DataTable dt = dv.ToTable();
                DS_SIACTEMP.SIAC_SDONSDataTable dts = new DS_SIACTEMP.SIAC_SDONSDataTable();
     
                foreach (DataRow dr in dt.Rows)
                {
                    dts.ImportRow(dr);
                }
    
                var lq = from p in dts
                         group p by new { p.FCORTE } into grp
                         select new { 
                             VIGCAP = grp.Sum(o => o.VIGCAP),
                             VENCAP = grp.Sum(o => o.VENCAP),
                             TOTCAP = grp.Sum(o => o.TOTCAP),
                             NUMREG = grp.Select(o => o.ESQUEMA).Count()
                         };
              
                foreach(var rq in lq)
                {
                    int mnumreg = rq.NUMREG;
                    decimal mvigcap = rq.VIGCAP;
                    decimal mvencap = rq.VENCAP;
                    decimal mtotcap = rq.TOTCAP;
                }      


    Hay alguna forma directa de obtener sumatorias de algunos campos directamente desde el  myBindingSource.List

    Sin tener que

    myBindingSource.List --> dataview

    dataview --> datatable

    typed datatable <-- importrows

    linq el typed datatable

     

    O alguna sugerencia de codigo mas optimo?

     

    Gracias!!!

     

    Saludos!!!!

     

    jueves, 1 de diciembre de 2011 1:20