Antes que todo muy buenas tardes a todos, es mi primer post en esta secion y necesito ayuda. espero que puedan orientarme. Estoy trabajando con VB.NET 2010 en 3 Capas (Diseño,Logica,BD) y SQL Server 2008. Tengo una tabla llamada "Productos" en la cual manejo la siguiente información. ID Codigo Nombre Cantidad Valor 1 100 Pato 2 100 2 40 Perro 3 1000 3 100 Pato 10 100 Necesito recupera la Suma de los mismos Codigo. Es decir la suma del ID (1 y 3) En SQL con esta consulta se puede recuperar la SUMA. select SUM(cantidad) from productos where codigo = 1 Con eso obtengo la cantidad de todos los códigos "1"
Public Function ObtenerProducto() As List(Of ClaseProducto)
Dim misProductos As List(Of ClaseProducto) = New List(Of ClaseProducto)
Try
Dim Sql As String = "SELECT * FROM productos"
Dim Db As BaseDatos = New BaseDatos()
Db.Conectar()
Db.CrearComando(Sql)
Dim DatosProductos As DbDataReader = Db.EjecutarConsulta()
Dim productoTemp As ClaseProducto = Nothing
While DatosProductos.Read
Try
productoTemp = New ClaseProducto(DatosProductos.GetValue(0), DatosProductos.GetValue(1), DatosProductos.GetValue(2), DatosProductos.GetValue(3), DatosProductos.GetValue(4), DatosProductos.GetValue(5), DatosProductos.GetValue(6), DatosProductos.GetValue(7), DatosProductos.GetValue(8))
misProductos.Add(productoTemp)
Catch ex As InvalidCastException
Throw New LogicaException("Los tipos no coinciden.", ex)
Catch ex As DataException
Throw New LogicaException("Error de ADO.NET.", ex)
End Try
End While
DatosProductos.Close()
Db.Desconectar()
Catch ex As BaseDatosException
Throw New LogicaException("Error al acceder a la base de datos para obtener los productos.")
Catch ex As LogicaException
Throw New LogicaException("Error al obtener los productos.")
End Try
Return misProductos
End Function
Pero necesito enviar la SUMA a un Textbox en .NET En mi formulario tengo 2 Textbox, uno para capturar el Codigo en la Base dato y el otro para obtener la SUMA y un button. Adjunto detalle de codigo, Formulario.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.Button1.Text = "" Then
MsgBox("Debe ingresar código a buscar", MsgBoxStyle.Critical, "Fast Food")
Me.Button1.Focus()
Else
Dim misProductos As New List(Of ClaseProducto)
misProductos = ControladorProducto.singletonProducto.ObtenerProducto()
For Each miProducto As ClaseProducto In misProductos If miProducto.CodigoProducto = Me.TextBox1.Text Then
Exit Sub
End If
Next
MsgBox("El producto no existe", MsgBoxStyle.Information, "Fast Food")
ModificarProducto.txtCodigoaBuscar.Clear()
ModificarProducto.txtCodigoaBuscar.Focus()
End If
End Sub
Controlador de Productos.
Private Shared _controladorProducto As ControladorProducto
Public Shared Function singletonProducto() As ControladorProducto
If _controladorProducto Is Nothing Then
_controladorProducto = New ControladorProducto
End If
Return _controladorProducto
End Function
Public Function ObtenerProducto() As List(Of ClaseProducto)
Dim misProductos As List(Of ClaseProducto) = New List(Of ClaseProducto)
Try
Dim Sql As String = "SELECT * FROM productos"
Dim Db As BaseDatos = New BaseDatos()
Db.Conectar()
Db.CrearComando(Sql)
Dim DatosProductos As DbDataReader = Db.EjecutarConsulta()
Dim productoTemp As ClaseProducto = Nothing
While DatosProductos.Read
Try
productoTemp = New ClaseProducto(DatosProductos.GetValue(0), DatosProductos.GetValue(1), DatosProductos.GetValue(2), DatosProductos.GetValue(3), DatosProductos.GetValue(4), DatosProductos.GetValue(5), DatosProductos.GetValue(6), DatosProductos.GetValue(7), DatosProductos.GetValue(8))
misProductos.Add(productoTemp)
Catch ex As InvalidCastException
Throw New LogicaException("Los tipos no coinciden.", ex)
Catch ex As DataException
Throw New LogicaException("Error de ADO.NET.", ex)
End Try
End While
DatosProductos.Close()
Db.Desconectar() Catch ex As BaseDatosException
Throw New LogicaException("Error al acceder a la base de datos para obtener los productos.")
Catch ex As LogicaException
Throw New LogicaException("Error al obtener los productos.")
End Try
Return misProductos
End Function
Espero que me pueden ayudar. Saludos Cordiales.