none
VB2008 - Como sumar usando LINQ RRS feed

  • Pregunta

  • Estimados,

    necesito sumar un campo usando LINQ.
    En internet encontré eso, pero no sé como adaptarlo a mi realidad:

    Aggregate cust In db.Customers
    Where cust.Country = "Venezuela" >> En mi caso no tengo condición.
    Into Sum(cust.Orders.Count)

    Utilizo un DataTable para cargar los datos.

    oDataBuscar = oVNT.BusquedaVenta(oFolio).Tables("Venta")

    Este es el campo que deseo sumar: "TOTAL"

    Gracias de ante mano

    jueves, 9 de diciembre de 2010 22:13

Respuestas

  • hola

    podrias usar algo como esto


    Dim suma As Integer = (From item In dt.AsEnumerable() _
                                         Select item.Field(Of Integer)("Total")).Sum()

     

    por supuesto en este caso el campo total es Integer, si el tipo es otro deberas cambiarlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 9 de diciembre de 2010 22:24

Todas las respuestas

  • hola

    podrias usar algo como esto


    Dim suma As Integer = (From item In dt.AsEnumerable() _
                                         Select item.Field(Of Integer)("Total")).Sum()

     

    por supuesto en este caso el campo total es Integer, si el tipo es otro deberas cambiarlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 9 de diciembre de 2010 22:24
  • Leandro,
    gracias por responder. Sabes que he tratado de utilizar tu ejemplo pero me aparece un error:
    "La conversión especificada no es válida.". He tratado de usar: Integer, Decimal y Double pero todo sigue igual.

    Comprobé los datos haciendo esto y funciona:

    Dim val As Integer = oDataBuscar.Rows(0).Item("TOTAL")

    Pero no sé que puede estar pasando.

    Dim oDataBuscar As New DataTable

    oDataBuscar = oVNT.BusquedaVenta(oFolio).Tables("Venta")

    Dim sum As Integer = (From item In oDataBuscar.AsEnumerable() _
                                     Select item.Field(Of Integer)("Total")).Sum()

    jueves, 9 de diciembre de 2010 22:47