net llenar leer ejemplos desde crear asp.net datatable

asp.net - llenar - Función de cálculo de Datatable para filas



leer datatable c# (3)

Como sabemos, con la función de cálculo de datatable podemos obtener la suma de columnas. Pero quiero obtener la suma de una fila de tabla de datos. Voy a explicar con un ejemplo:

Tengo una imagen tipo tabla de datos a continuación: Con la función de cálculo podemos obtener la suma de cada columna (producto). Tal como para product1, 2 + 12 + 50 + 13 = 77.

Quiero obtener la suma de la compañía1: 2 + 6 + 4 + 3 + 5 = 20

http://img123.imageshack.us/img123/1517/61519307xx5.jpg

¿Cómo puedo hacerlo con asp.net 1.1?


Desde msdn :

Si debe realizar una operación en dos o más columnas, debe crear un DataColumn, establecer su propiedad Expression en una expresión adecuada y usar una expresión agregada en la columna resultante. En ese caso, dado un DataColumn con el nombre "total", y la propiedad Expression establecida a esto:

"Quantity * UnitPrice"


LINQ al rescate:

DataTable dt = WhateverCreatesDataTable(); DataRow dr = dt.Rows[0]; int sum = dt.Columns.Cast<DataColumn>().Sum(dc=>(int)dr[dc]);

Para aquellos que aún arrastran sus nudillos en las edades de piedra (también conocido como pre.Net 3.5 y LINQ):

DataTable dt = WhateverCreatesDataTable(); DataRow dr = dt.Rows[0]; int sum = 0; foreach(DataColumn dc in dt.Columns) sum += (int)dr[dc];


Como quiera resolver esto en 1.1, aquí está lo que puede hacer como una solución simple

DataColumn totalColumn = new DataColumn(); totalColumn.DataType = System.Type.GetType("System.Int32"); totalColumn.ColumnName = "Total"; totalColumn.Expression = "Product1 + Product2 + Product3 + Product4 + Product5"; // Populate and get the DataTable dt then add this computed column to this table dt.Columns.Add(totalColumn); //Now if you access the column "Total" of the table you will get the desired result.