DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

Método Compute característica del DataTable

Por royrojas | 1/21/2006 | Visitas 16,262 | Voto 5.00
El método Compute es una propiedad del DataTable para realizar cálculos sobre las filas que cumplan los criterios del filtro.
Categorías : VB.NET, C#

Ej.
ds.Tables("Ordenes").Compute("Sum(Total)", "CodigoVendedor = 5")


Cuando utilizemos Compute sobre una tabla el resultado esperado son valores como un string, un integer, etc. A este valor obtenido debemos hacerle una conversión al tipo de dato que deseamos ya que podría generar error por diferencias de objetos.

Parámetros utilizados en el Compute
expression: Expresión que se va a calcular.
filter: Filtro que va a limitar las filas que se evalúan en la expresión.

Valor de retorno: Como mencionamos anteriormente es un objeto sin tipo de datos definido, por este motivo es que hay que aplicarle una conversión (Convert,ctype, cdate, cstr, etc).

Cuales son las expresiones válidas cuando utilicemos Compute?
Count(Empleados) donde Empleados sería el nombre de la columna.

Sum (Suma)

Avg (Promedio)

Min (Mínimo)

Max (Máximo)

Count(Recuento)

StDev (Desviación estadística estándar)

Var (Varianza estadística)


Algo muy importante es que en la expresión no se pueden hacer operaciones matemáticas como multiplicar dos columnas (o sumar, restar, dividir, etc)
Sum (Cantidad * Precio) -> NO

Si realmente necesita una operación en dos o mas columnas debe crear un DataColumn, establecer su propiedad Expression adecuada y utilizar una expresión de Compute en la columna resultante. En ese caso, dado un DataColumn con el nombre "total" y la propiedad Expression establecida, Cantidad * Precio. Luego en el método Compute si hace Sum(total) para obtener el valor esperado.

Ver Artículo en DotNetcr Como utilizar la propiedad Expression en un DataTable, para comprender mejor este artículo.

El segundo valor en el método Compute es el filtro, donde igual en el SQL una especie de where donde le indicamos los criterios que nos retornen solo los datos que ocupemos.
FechaNacimiento > 1/1/1980 AND FechaNacimiento < 1/1/1990
Edad = 18
Precio <= 2000

Podemos utilizar para los filtros:
<

>

<=

>=

<>

=

IN

LIKE


Ejemplos:
[Visual Basic]
Private Sub CalculoOrdenesDia(ByVal ds As DataSet)
'DataTable llamado "Ordenes" que contiene una columna de "Total"
Dim CantidadOrdenes as Integer
CantidadOrdenes = CType(ds.Tables("Ordenes").Compute _
("Sum(Total)", "CodigoVendedor = 5"),Integer)
End Sub

[C#]
private void CalculoOrdenesDia(DataSet myDataSet){
// DataTable llamado "Ordenes" que contiene una columna de "Total"
Integer CantidadOrdenes;
CantidadOrdenes = (int)myDataSet.Tables["Ordenes"].Compute("Sum(Total)", "CodigoVendedor = 5");
}

Area de Comentarios
Por Anónimo - Fecha: 2008/01/25 07:23 PM
Y que pasa cuando da null. ami me da null y ctype deberia de convertir el null a 0, pero no lo hace.
Por Anónimo - Fecha: 2008/04/28 04:50 AM
Gracias!
Por Anónimo - Fecha: 2012/04/26 03:12 AM
try domainlibya.com they sell cheap Dedicated seervrs, i think if you send them an email, they should install MS SQL on a dedicated server.Hopes it helpReferences :
Por Anónimo - Fecha: 2012/04/27 08:08 AM
4AwXaB , [url=http://ncipspqyawxl.com/]ncipspqyawxl[/url], [link=http://npmyppfxcnoq.com/]npmyppfxcnoq[/link], http://rstubsctlshi.com/
Por Anónimo - Fecha: 2012/04/29 12:49 AM
MyMQLo , [url=http://dzeqiycgjaft.com/]dzeqiycgjaft[/url], [link=http://orcpldyzcefs.com/]orcpldyzcefs[/link], http://sjsiijqyppsq.com/
Por Anónimo - Fecha: 2015/12/17 02:09 PM
Thanks for the quick response. I'll cointnue and see how it goes. When I was in high school I worked out in the 3 x 5 format and did see a lot of muscle gain. Maybe I'll experiment with other exercises using the same format. I haven't worked out since and want to get back into it. Keep up the great work on Critical MAS.
Por Anónimo - Fecha: 2015/12/19 02:47 AM
You can use these PowerShell scripts to ataomute any deployment within Deployment Manager, meaning you get the centralized dashboard to keep track of all your deployments in one place. Our next big development milestone will be adding SQL database automation functionality, so make sure to sign up for our beta version. http://aawobrrrx.com [url=http://ytmylmx.com]ytmylmx[/url] [link=http://itnudss.com]itnudss[/link]
Por Anónimo - Fecha: 2015/12/20 02:20 PM
Top notch work on this. I do find it a bit creepy to think of corooratipns infiltrating the web, engaging' and networking' as real members . I mean, I know it happens, but a video explaining how to do it and why it is good for business is pretty disconcerting.Still, a really well made,? accurate and useful (to evil corooratipns =P) animation. http://uplmmiowm.com [url=http://mlwttt.com]mlwttt[/url] [link=http://twulvgzipa.com]twulvgzipa[/link]
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
ricardo leppe t
pedrojavier
CALIN
willipinru
richard
ragomez
PER 238
MEX 236
CRI 188
COL 118
ESP 105
ARG 88