Buscar este blog

lunes, 7 de noviembre de 2011

ADO.NET - Incluir una columna calculada en un DataTable.

En este ejemplo mostraremos un valor calculado para fila de un objeto DataTable. Se va crear una DataTable conteniendo 5 filas de la tabla Products de la base de datos Northwind.mdf, donde una columna contiene una expresión para calcular el precio para cada registro e incluir en una tabla  el resultado para ser exhibido en la aplicación.
Crear un nuevo proyecto en Visual Studio 2010 Ultimate, seleccionar la plantilla Visual Basic y Windows Forms Application, asignarle el nombre de Filas_Calculadas_DataTable:

Incluir en el Server Explorer la base de datos Northwind.mdf.

Observe que la tabla Products posee dos columnas UnitPrice y UnitsInStock. Vamos a crear una columna con una expresión para calcular los valores de las dos columnas y mostrarlas en un formulario.
El formulario Form1.vb vamos a agregar un control ListBox y dos controles Button conforme a la figura mostrada a continuación:

Añada el siguiente código al formulario:
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SqlCon As String = "Data Source=.\SQLEXPRESS; Integrated security=SSPI; Initial Catalog=Northwind;"
      Dim Sql As String = "SELECT TOP 5 * FROM Products"
      'Usa un DataAdapter para llenar datos al DataTable
      Dim Da As New SqlDataAdapter (Sql, SqlCon)
      Dim Dt As New DataTable ()
      Da.Fill (Dt)
      'Crea una columna e incluye una expresión en la columna de la tabla
      Dt.Columns.Add (New DataColumn ("TotalCalculado", GetType ([Decimal]), "UnitPrice * UnitsInStock"))
        ListBox1.Items.Add ("Cod.  Precio      Stock       Total ")
        For Each row As DataRow In Dt.Rows
            ListBox1.Items.Add (Convert.ToString (row ("ProductID")) & Space (6) & _
                                   Convert.ToString (row ("UnitPrice")) & Space (7) & _
                                   Convert.ToString (row ("UnitsInStock")) & Space (12) & _
                                   Convert.ToString (row ("TotalCalculado")))
        Next
    End Sub
Private Sub Button2_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close ()
End Sub
End Class
Una columna con una expresión calculada contiene un valor que es calculada a partir de valores de otras columnas de la misma fila.
Una columna con una expresión de cálculo es incluida en una tabla a través del constructor del DataColumn que toma la expresión para la columna como un tercer argumento (lo que usamos en este ejemplo).
En el ejemplo, una columna con una expresión llamada TotalCalculado es creada como un tipo de dados Decimal. La columna calcula toma el valor total para un producto usando las columnas UnitPrice * UnitsInStock.
Si desea el programa fuente contactarse a:cgprognet@gmail.com

No hay comentarios:

Publicar un comentario