DATAGRID AGREGAR COLUMNAS CALCULADAS

13/04/2006 - 23:36 por Jose Luis Bellón | Informe spam
Hola

Como se puede agregar una columna calculada al datagrid por ej. una columna
Importe = Cantidad * precio

Gracias.
 

Leer las respuestas

#1 Luis Miguel Blanco
17/04/2006 - 18:08 | Informe spam
Hola José Luis

Creo que en este caso, la cuestión no atañe tanto al datagrid como a su
fuente de datos; intentaré explicarme:

Puedes resolver esta cuestión si obtienes el dataset que has asignado al
datagrid, y en la tabla que necesites, añades una nueva columna en tiempo de
ejecución. Te adjunto a continuación un bloque de código con un ejemplo para
que lo pruebes:

'///////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

Private oConnection As SqlConnection
Private oDataAdapter As SqlDataAdapter
Private oDataSet As DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
' carga inicial del dataset y datagrid
oConnection = New
SqlConnection("Server=localhost;Database=Northwind;uid=sa;pwd=")
oDataAdapter = New SqlDataAdapter("SELECT OrderID,CustomerID,Freight
FROM Orders", oConnection)
oDataSet = New DataSet

oConnection.Open()
oDataAdapter.Fill(oDataSet, "Orders")
oConnection.Close()

Me.DataGrid1.SetDataBinding(oDataSet, "Orders")
End Sub

Private Sub btnColumnaCalculada_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnColumnaCalculada.Click
' al pulsar un botón, recuperamos del dataset asignado al datagrid
' un objeto dataview al que le añadimos una columna calculada,
' finalmente añadimos el dataview al datagrid
Me.DataGrid1.DataSource = Nothing

Dim colNueva As DataColumn = New DataColumn("ValorDoble")
colNueva.Expression = "Freight * 2"

Dim dvVistaDatos As DataView = oDataSet.Tables("Orders").DefaultView
dvVistaDatos.Table.Columns.Add(colNueva)

Me.DataGrid1.DataSource = dvVistaDatos
End Sub
End Class
'///////////////////////////////////

Al pulsar el botón del formulario, observa que vaciamos de contenido el
datagrid, y lo volvemos a llenar, pero esta vez con un dataview que contiene
la columna calculada.

Espero que te sea de utilidad.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jose Luis Bellón" wrote:

Hola

Como se puede agregar una columna calculada al datagrid por ej. una columna
Importe = Cantidad * precio

Gracias.


Preguntas similares