Ayuda con DataTable.Compute

22/04/2008 - 05:38 por edcha | Informe spam
El asunto es que en un DataTable tengo una columna con el tipo
TimeSpan y al querer hacer lo siguiente

DataTable.Compute("Sum(ColTipoTimeSpan)")

me da el siguiente error .


Se generó la excepción System.Data.DataException en el programa:
Uso no válido de la función de agregado Sum() y el tipo: DateTime.




a alguien le ha pasado esto como lo puedo resolver

Gracias
 

Leer las respuestas

#1 Alberto Poblacion
22/04/2008 - 08:24 | Informe spam
"edcha" wrote in message
news:
El asunto es que en un DataTable tengo una columna con el tipo
TimeSpan y al querer hacer lo siguiente

DataTable.Compute("Sum(ColTipoTimeSpan)")



No hay manera. Las expresiones que acepta el "Compute" son muy
limitadas, y en particular el "Sum" solo sabe sumar tipos numéricos. Para
sumar TimeSpans en un DataTable tendrás que usar un bucle que recorra los
datos y los vaya sumando. El "Compute" no es lo bastante flexible para
hacerlo por sí mismo:

DataTable dt = new DataTable();
DataColumn dc = new DataColumn("tiempo", typeof(TimeSpan));
dt.Columns.Add(dc);
...
TimeSpan tiempoTotal = TimeSpan.Zero;
foreach (DataRow dr in dt.Rows)
{
tiempoTotal = tiempoTotal.Add((TimeSpan)dr["tiempo"]);
}
//Tenemos la suma en tiempoTotal

Preguntas similares