Está en la página 1de 26

APLICACIÓN VB.

NET Y SQL SERVER ARQUITECTURA TRES CAPAS

1. Desarrollar una aplicación en VB.NET y Ms SQL Server, basada en la arquitectura


tres capas, para la siguiente base de datos de nombre pedidos:

Se le pide lo siguiente:
1. Formulario Mantenimiento de Categorías (Reportar, Insertar, Actualizar y
Eliminar)
2. Búsqueda por código, nombre y precio
3. Formulario Mantenimiento de Productos(Reportar, Insertar, Actualizar y
Eliminar)
4. Búsqueda por Nombre de categoría

Ayuda:

Crear para cada tabla una clase:


Primeramente empezamos con la creación de la base de datos y nuestros
procedimientos almacenados:
Procedimientos para generar los códigos de los nuevos registros.

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Procedimientos para insertar tanto productos como categorías.

Procedimientos almacenados para actualizar productos y categorías

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Procedimientos almacenados para listar productos y categorías

Procedimientos almacenados para buscar productos y categorías

Procedimiento almacenado para llenar el ComboBox categoría


Claro siempre y cuando desee recuperar solo algunos registros o en todo caso
usar el listar categorías:

 Biblioteca Entidades
1. Clase Categoría

Public Class Categoria


Private midCategoria As Integer
Private mNombreCategoria As String
Private mDescripcionCategoria As String
Public Sub New()

End Sub
Public Sub New(ByVal nombrecate As String)
mNombreCategoria = nombrecate

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


End Sub
Public Property idCategoria() As Integer
Get
Return midCategoria
End Get
Set(ByVal value As Integer)
midCategoria = value
End Set
End Property
Public Property NombreCategoria() As String
Get
Return mNombreCategoria
End Get
Set(ByVal value As String)
mNombreCategoria = value
End Set
End Property

Public Property DescripcionCategoria() As String


Get
Return mDescripcionCategoria
End Get
Set(ByVal value As String)
mDescripcionCategoria = value
End Set
End Property
End Class

2. Clase Producto

Public Class Producto


Private midproducto As Integer
Private mDescripcion As String
Private mprecio As Decimal
Private midCategorias As String
Private mStock As String
Public Property idProducto() As Integer
Get
Return midproducto
End Get
Set(ByVal value As Integer)
midproducto = value
End Set
End Property
Public Property DescripcionProducto() As String
Get
Return mDescripcion
End Get
Set(ByVal value As String)
mDescripcion = value
End Set
End Property

Public Property PrecioProducto() As Decimal


Get
Return mprecio
End Get
Set(ByVal value As Decimal)

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


mprecio = value
End Set
End Property
Public Property StockProducto() As String
Get
Return mStock
End Get
Set(ByVal value As String)
mStock = value
End Set
End Property
Public Property idCategoriaProducto() As String
Get
Return midCategorias
End Get
Set(ByVal value As String)
midCategorias = value
End Set
End Property
End Class

 Biblioteca Datos
Clase: ProductoDAO

Imports Conexion
Imports Entidades
Imports System.Data
Imports System.Data.SqlClient
Public Class ProductoDAO
Public daProducto As SqlDataAdapter
Public cmdProducto As New SqlCommand
Public dsProducto As DataSet
Public drProducto As SqlDataReader
Dim objConexion As New conexionbd
Public Function AgregarProducto(ByVal objProductoE As Producto) As String
Dim mensaje As String
cmdProducto.CommandType = CommandType.StoredProcedure
cmdProducto.CommandText = "sp_insertar_producto"
cmdProducto.Connection = objConexion.obtenerconexion
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
With cmdProducto.Parameters
.Add("@idProducto", SqlDbType.Int).Value = objProductoE.idProducto
.Add("@descripcion", SqlDbType.VarChar).Value = objProductoE.DescripcionProducto
.Add("@precio", SqlDbType.Decimal).Value = objProductoE.PrecioProducto
.Add("@stock", SqlDbType.Int).Value = objProductoE.StockProducto
.Add("@idcategoria", SqlDbType.Int).Value = CInt(objProductoE.idCategoriaProducto)
End With
Dim registros As Integer
registros = cmdProducto.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro guardado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


cmdProducto.Parameters.Clear()
objConexion.obtenerconexion.Close()
End Function
Public Function ActualizarProductos(ByVal objProductoE As Producto) As String
Dim mensaje As String
cmdProducto.CommandType = CommandType.StoredProcedure
'Nombre procedimiento almacenado
cmdProducto.CommandText = "SP_Actualizar_Producto"
'obtener la conexion con la base de datos
cmdProducto.Connection = objConexion.obtenerconexion
'Verificar el estado de la conexión
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
'Creamos los parámetros
'Todos los atributos de la tabla Producto
With cmdProducto.Parameters
'Obtenemos el IdProducto, usando el objProductoE
.Add("@idProducto", SqlDbType.Int).Value = objProductoE.idProducto
.Add("@descripcion", SqlDbType.VarChar).Value = objProductoE.DescripcionProducto
.Add("@precio", SqlDbType.Decimal).Value = objProductoE.PrecioProducto
.Add("@stock", SqlDbType.Int).Value = objProductoE.StockProducto
.Add("@idcategoria", SqlDbType.Int).Value = CInt(objProductoE.idCategoriaProducto)

End With
Dim registros As Integer
registros = cmdProducto.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro Actualizado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdProducto.Parameters.Clear()
objConexion.obtenerconexion.Close()
End Function
Public Function listarProductos() As List(Of Producto)
Dim lista As New List(Of Producto)
Dim lector As SqlDataReader
Dim objProducto As Producto
cmdProducto = New SqlCommand("SP_Listar_Producto", objConexion.obtenerconexion)
lector = cmdProducto.ExecuteReader
While lector.Read
objProducto = New Producto
objProducto.IdProducto = lector(0)
objProducto.DescripcionProducto = lector(1)
objProducto.PrecioProducto = lector(2)
objProducto.StockProducto = lector(3)
Dim objeCategoria = New Categoria(lector(4))
objProducto.idCategoriaProducto = objeCategoria.NombreCategoria
'objProducto.idCategoriaProducto = lector(4)
lista.Add(objProducto)
End While
Return lista
End Function
Public Function listarProducto(ByVal codigo As Integer) As Producto
Dim lista As New List(Of Producto)
Dim lector As SqlDataReader
Dim objProducto As Producto

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


objProducto = New Producto
Dim objProducto1 As New Producto
cmdProducto.CommandType = CommandType.StoredProcedure
'Nombre procedimiento almacenado
cmdProducto.CommandText = "Sp_BuscarProducto"
'obtener la conexion con la base de datos
cmdProducto.Connection = objConexion.obtenerconexion
'Verificar el estado de la conexión
'cmdProducto = New SqlCommand("Sp_BuscarProducto", objConexion.obtenerconexion)
With cmdProducto.Parameters
'Obtenemos el IdProducto, usando el objProductoE
.Add("@codigo", SqlDbType.Int).Value = codigo
End With
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
lector = cmdProducto.ExecuteReader
'objProducto = New Producto
If lector.Read Then
objProducto.idProducto = lector(0)
objProducto.DescripcionProducto = lector(1)
objProducto.PrecioProducto = lector(2)
objProducto.StockProducto = lector(3)
Dim objeCategoria = New Categoria(lector(4))
objProducto.idCategoriaProducto = objeCategoria.NombreCategoria

End If
Return objProducto
End Function
Public Function codProducto() As Integer
Dim codigo As Integer
Dim lector As SqlDataReader
cmdProducto = New SqlCommand("SP_Generar_Codigo_Producto", objConexion.obtenerconexion)
lector = cmdProducto.ExecuteReader
If lector.Read Then
codigo = lector(0)
End If
Return codigo
End Function
End Class

Clase: CategoriaDAO

Imports Conexion
Imports Entidades
Imports System.Data
Imports System.Data.SqlClient
Public Class CategoriaDAO
Public daCategoria As SqlDataAdapter
Public cmdCategoria As New SqlCommand
Public dsCategoria As DataSet
Public drCategoria As SqlDataReader
'Dim conn As New SqlConnection("Data Source=.;Initial Catalog=SistemaFacturacion;Integrated
Security=True")
Dim objConexion As New conexionbd
Public Function AgregarCategoria(ByVal objCategoriaE As Categoria) As String
Dim mensaje As String
cmdCategoria.CommandType = CommandType.StoredProcedure
cmdCategoria.CommandText = "SP_Inserta_Categoria"

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


cmdCategoria.Connection = objConexion.obtenerconexion
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If

With cmdCategoria.Parameters
.Add("@idCategoria", SqlDbType.Int).Value = objCategoriaE.idCategoria
.Add("@nombre", SqlDbType.VarChar).Value = objCategoriaE.NombreCategoria
.Add("@descripcion", SqlDbType.VarChar).Value = objCategoriaE.DescripcionCategoria
End With
Dim registros As Integer
registros = cmdCategoria.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro guardado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdCategoria.Parameters.Clear()
objConexion.obtenerconexion.Close()

End Function

Public Function ActualizarCategorias(ByVal objCategoriaE As Categoria) As String


Dim mensaje As String
cmdCategoria.CommandType = CommandType.StoredProcedure
cmdCategoria.CommandText = "SP_Actualizar_Categoria"
cmdCategoria.Connection = objConexion.obtenerconexion
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
'cmdCliente.Connection =
With cmdCategoria.Parameters
.Add("@idCategoria", SqlDbType.Int).Value = objCategoriaE.idCategoria
.Add("@nombre", SqlDbType.VarChar).Value = objCategoriaE.NombreCategoria
.Add("@descripcion", SqlDbType.VarChar).Value = objCategoriaE.DescripcionCategoria

End With
Dim registros As Integer
registros = cmdCategoria.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro Actualizado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdCategoria.Parameters.Clear()
objConexion.obtenerconexion.Close()

End Function
Public Function listarCategorias() As List(Of Categoria)
Dim lista As New List(Of Categoria)
Dim lector As SqlDataReader
Dim objCategoria As Categoria

cmdCategoria = New SqlCommand("SP_Listar_Categoria", objConexion.obtenerconexion)

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


lector = cmdCategoria.ExecuteReader
While lector.Read
objCategoria = New Categoria
objCategoria.idCategoria = lector(0)
objCategoria.NombreCategoria = lector(1)
objCategoria.DescripcionCategoria = lector(2)
lista.Add(objCategoria)
End While
Return lista
End Function
Public Function listarCategoria(ByVal codigo As Integer) As Categoria
Dim lista As New List(Of Categoria)
Dim lector As SqlDataReader
Dim objCategoria As Categoria
objCategoria = New Categoria
Dim objCategoria1 As New Producto
cmdCategoria.CommandType = CommandType.StoredProcedure
'Nombre procedimiento almacenado
cmdCategoria.CommandText = "Sp_Buscar_Categoria"
'obtener la conexion con la base de datos
cmdCategoria.Connection = objConexion.obtenerconexion
'Verificar el estado de la conexión
'cmdProducto = New SqlCommand("Sp_BuscarProducto", objConexion.obtenerconexion)
With cmdCategoria.Parameters
'Obtenemos el IdProducto, usando el objProductoE
.Add("@idCategoria", SqlDbType.Int).Value = codigo
End With
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
lector = cmdCategoria.ExecuteReader
'objProducto = New Producto
If lector.Read Then
objCategoria.idCategoria = lector(0)
objCategoria.NombreCategoria = lector(1)
objCategoria.DescripcionCategoria = lector(2)
End If
Return objCategoria
End Function
Public Function buscarCodxNombre(ByVal nombre As String) As Categoria
Dim lista As New List(Of Categoria)
Dim lector As SqlDataReader
Dim objCategoria As Categoria
objCategoria = New Categoria

cmdCategoria.CommandType = CommandType.StoredProcedure
'Nombre procedimiento almacenado
cmdCategoria.CommandText = "sp_categoria_buscaridxnombre"
'obtener la conexion con la base de datos
cmdCategoria.Connection = objConexion.obtenerconexion
'Verificar el estado de la conexión
'cmdProducto = New SqlCommand("Sp_BuscarProducto", objConexion.obtenerconexion)
With cmdCategoria.Parameters
'Obtenemos el IdProducto, usando el objProductoE
.Add("@nombre", SqlDbType.VarChar).Value = nombre
End With
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


objConexion.obtenerconexion.Open()
End If
lector = cmdCategoria.ExecuteReader
'objProducto = New Producto
If lector.Read Then
objCategoria.idCategoria = lector(0)
objCategoria.NombreCategoria = lector(1)
objCategoria.DescripcionCategoria = lector(2)
End If
Return objCategoria
End Function
Public Function llenarComboCategoria() As Categoria
Dim lista As New List(Of Categoria)
Dim lector As SqlDataReader
Dim objCategoria As Categoria
objCategoria = New Categoria

cmdCategoria = New SqlCommand("sp_combo_categoria", objConexion.obtenerconexion)


If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
lector = cmdCategoria.ExecuteReader
If lector.Read Then
objCategoria.idCategoria = lector(0)
objCategoria.NombreCategoria = lector(1)
End If
Return objCategoria
End Function
Public Function codCategoria() As Integer
Dim codigo As Integer
Dim lector As SqlDataReader
cmdCategoria = New SqlCommand("SP_Generar_Codigo_Categoria", objConexion.obtenerconexion)
lector = cmdCategoria.ExecuteReader
If lector.Read Then
codigo = lector(0)
End If
Return codigo
End Function

End Class

 Biblioteca Negocio
Clase: ProductoNE

Imports Datos
Imports Entidades
Public Class ProductoNE
Private objProductoDAO As ProductoDAO
Public Sub New()
objProductoDAO = New ProductoDAO

End Sub
Public Function AgregarProducto(ByVal objProductoE As Producto) As String
Return objProductoDAO.AgregarProducto(objProductoE)
End Function
Public Function ActualizarProducto(ByVal objProductoE As Producto) As String
Return objProductoDAO.ActualizarProductos(objProductoE)
End Function
Public Function CodProducto() As Integer

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Return objProductoDAO.codProducto()
End Function
Public Function listarProductos() As List(Of Producto)
Return objProductoDAO.listarProductos
End Function
Public Function listarProducto(ByVal codigo As Integer) As Producto
Return objProductoDAO.listarProducto(codigo)
End Function
Public Function llenarComboProducto() As Producto
Return objProductoDAO.llenarComboProducto
End Function
End Class

Clase: CategoriaNE

Imports Datos
Imports Entidades
Public Class CategoriaNE
Private objCategoriaDAO As CategoriaDAO
Public Sub New()
objCategoriaDAO = New CategoriaDAO

End Sub
Public Function AgregarCategoria(ByVal objCategoriaE As Categoria) As String
Return objCategoriaDAO.AgregarCategoria(objCategoriaE)
End Function
Public Function ActualizarCategoria(ByVal objCategoriaE As Categoria) As String
Return objCategoriaDAO.ActualizarCategorias(objCategoriaE)
End Function
Public Function listarCategorias() As List(Of Categoria)
Return objCategoriaDAO.listarCategorias
End Function
Public Function listarCategoria(ByVal codigo As Integer) As Categoria
Return objCategoriaDAO.listarCategoria(codigo)
End Function
Public Function buscarCodxNombre(ByVal nombre As String) As Categoria
Return objCategoriaDAO.buscarCodxNombre(nombre)
End Function
Public Function CodCategoria() As Integer
Return objCategoriaDAO.codCategoria()
End Function
End Class

 Biblioteca Conexión
Clase:conexionbd

Imports System.Data
Imports System.Data.SqlClient
Public Class conexionbd
Public cadena As String = "Data Source=.;Initial Catalog=BDEXA_TALLER_PRO;Integrated
Security=True"
Public conexion As SqlConnection
Public Function obtenerconexion() As SqlConnection
conexion = New SqlConnection(cadena)
conexion.Open()
Return conexion
End Function

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Public Function AbrirConexion() As SqlConnection
Dim con As SqlConnection
con = New SqlConnection(cadena)
con.Open()
Return con
End Function
Public Function CerrarConexion() As SqlConnection
Dim con As SqlConnection
con = New SqlConnection(cadena)
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Close()
Return con
End Function
End Class

 Capa Presentación
 Menú Principal:

 Formularios:
 FrmProducto

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


 FrmCategoria

 Código fuente de la aplicación


 Formulario FrmProducto

Imports Entidades
Imports Negocio
Public Class FrmProducto
Dim objCategoria As List(Of Categoria)
Dim objCategoriaNE As CategoriaNE
Dim objProductoNE As New ProductoNE
Private Sub FrmProducto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim objProductoNE1 As ProductoNE
objProductoNE1 = New ProductoNE
dgvProducto.DataSource = objProductoNE1.listarProductos
ConfigurarDataGrid()
BuscarProductos(1)
cargarCategorias()
HabilitarCajas(False)
habilitarBotones(True, False, False, False)
End Sub
Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnNuevo.Click
cargarCategorias()
Me.txtcodigo.Text = objProductoNE.CodProducto
limpiar_cajas()

End Sub
Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnGrabar.Click
Nuevo_Producto()
End Sub

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnActualizar.Click
actualizarProductos()
End Sub
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnCancelar.Click
cancelar_producto()
cargarCategorias()
End Sub
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBuscar.Click
Dim objProductoNE As ProductoNE
objProductoNE = New ProductoNE
Dim objProductoE As New Producto
Dim codigo As Integer = CInt(InputBox("Ingrese Código Producto"))
BuscarProductos(codigo)
End Sub
Sub cargarCategorias()
Dim producto1 As New Producto
objCategoria = New List(Of Categoria)
objCategoriaNE = New CategoriaNE
objCategoria = objCategoriaNE.listarCategorias
cboCategoria.DataSource = Nothing
cboCategoria.DataSource = objCategoria
cboCategoria.DisplayMember = "NombreCategoria"
cboCategoria.ValueMember = "idCategoria"
End Sub
Sub limpiar_cajas()
HabilitarCajas(True)
LimpiarCajas()
habilitarBotones(False, True, False, True)
Dim objProductoNE = New ProductoNE
Me.txtcodigo.Text = objProductoNE.CodProducto()
End Sub
Sub Nuevo_Producto()
Dim objProductoE = New Producto
Dim objProductoNE = New ProductoNE
objProductoE.idProducto = CInt(txtcodigo.Text)
objProductoE.DescripcionProducto = txtDescripcion.Text
objProductoE.PrecioProducto = txtprecio.Text
objProductoE.idCategoriaProducto = cboCategoria.SelectedValue
objProductoE.StockProducto = txtStock.Text
Dim salida As String = objProductoNE.AgregarProducto(objProductoE)
MsgBox(salida)
dgvProducto.DataSource = objProductoNE.listarProductos
habilitarBotones(True, False, False, False)
HabilitarCajas(False)
End Sub
Sub actualizarProductos()
If txtcodigo.Text <> "" Then
Dim objProductoE = New Producto
Dim objProductoNE = New ProductoNE
objProductoE.idProducto = CInt(txtcodigo.Text)
objProductoE.DescripcionProducto = txtDescripcion.Text
objProductoE.PrecioProducto = txtprecio.Text
objProductoE.idCategoriaProducto = cboCategoria.SelectedValue
objProductoE.StockProducto = txtStock.Text
Dim salida As String = objProductoNE.ActualizarProducto(objProductoE)
MsgBox(salida)
dgvProducto.DataSource = objProductoNE.listarProductos
Else
MsgBox("Ingrese los datos para actualizar")

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


End If
habilitarBotones(True, False, False, False)
HabilitarCajas(False)
End Sub
Sub cancelar_producto()
BuscarProductos(1)
HabilitarCajas(False)
habilitarBotones(True, False, False, False)
End Sub
Private Sub dgvProductos_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvProducto.CellClick

If dgvProducto.Rows.Count > 0 Then


Dim dgvFila As DataGridViewRow = Me.dgvProducto.CurrentRow()
Me.txtcodigo.Text = dgvFila.Cells(0).Value
Me.txtDescripcion.Text = dgvFila.Cells(1).Value
Me.txtprecio.Text = dgvFila.Cells(2).Value
Me.txtStock.Text = dgvFila.Cells(3).Value
Me.cboCategoria.Text = dgvFila.Cells(4).Value

Else
MsgBox("No hay ningun registro seleccionado")
End If
habilitarBotones(False, False, True, True)
HabilitarCajas(True)
End Sub
Sub LimpiarCajas()
Me.txtcodigo.Clear()
Me.txtDescripcion.Clear()
Me.txtprecio.Clear()
'Me.cboCategoria.DataSource = Nothing
Me.txtStock.Clear()
End Sub
Sub HabilitarCajas(ByVal estado)
Me.txtcodigo.Enabled = False
Me.txtDescripcion.Enabled = estado
Me.txtprecio.Enabled = estado
Me.cboCategoria.Enabled = estado
Me.txtStock.Enabled = estado
Me.txtDescripcion.Focus()
End Sub
Sub ConfigurarDataGrid()
dgvProducto.RowsDefaultCellStyle.BackColor = Color.LightYellow
dgvProducto.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen
End Sub
Sub habilitarBotones(ByVal btnnuevo As Boolean, ByVal btnAgregar As Boolean, ByVal btnActualizar As
Boolean, ByVal btncancelar As Boolean)
Me.btnNuevo.Enabled = btnnuevo
Me.btnGrabar.Enabled = btnAgregar
Me.btnActualizar.Enabled = btnActualizar
Me.btnCancelar.Enabled = btncancelar
End Sub
Sub BuscarProductos(ByVal codigo As Integer)
Dim objProductoNE As ProductoNE
objProductoNE = New ProductoNE
Dim objProductoE As New Producto
Dim idProducto As Integer
idProducto = objProductoNE.CodProducto() - 1
If codigo > idProducto Then
MsgBox("Registros no encontrado")
Else
objProductoE = objProductoNE.listarProducto(codigo)

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Me.txtcodigo.Text = objProductoE.idProducto
Me.txtDescripcion.Text = objProductoE.DescripcionProducto
Me.txtprecio.Text = objProductoE.PrecioProducto
' cboCategoria.DataSource = Nothing
Me.cboCategoria.Text = objProductoE.idCategoriaProducto
Me.txtStock.Text = objProductoE.StockProducto
End If
habilitarBotones(False, False, True, True)
HabilitarCajas(True)
End Sub

End Class

 Formulario: FrmCategoria

Imports Entidades
Imports Negocio
Public Class FrmCategoria

Private Sub FrmCategoria_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
Dim objCategoriaNE1 As CategoriaNE
objCategoriaNE1 = New CategoriaNE
dgvCategoria.DataSource = objCategoriaNE1.listarCategorias
ConfigurarDataGrid()
BuscarCategorias(1)
HabilitarCajas(False)
habilitarBotones(True, False, False, False)
End Sub

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


btnNuevo.Click
Limpiar_Categoria()
End Sub
Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnGrabar.Click
Nueva_Categoria()
End Sub
Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnActualizar.Click
actualizar_Categorias()
End Sub
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnCancelar.Click
Cancelar_Categoria()
End Sub
Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnBuscar.Click
Buscar_Categoria()
End Sub
Sub LimpiarCajas()
Me.txtCodigo.Clear()
Me.txtNombre.Clear()
Me.txtdescripcion.Clear()
End Sub
Sub HabilitarCajas(ByVal estado)
Me.txtCodigo.Enabled = False
Me.txtNombre.Enabled = estado
Me.txtDescripcion.Enabled = estado
Me.txtNombre.Focus()
End Sub

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Sub ConfigurarDataGrid()
dgvCategoria.RowsDefaultCellStyle.BackColor = Color.LightYellow
dgvCategoria.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen
End Sub
Sub habilitarBotones(ByVal btnnuevo As Boolean, ByVal btnAgregar As Boolean, ByVal btnActualizar As
Boolean, ByVal btncancelar As Boolean)
Me.btnNuevo.Enabled = btnnuevo
Me.btnGrabar.Enabled = btnAgregar
Me.btnActualizar.Enabled = btnActualizar
Me.btnCancelar.Enabled = btncancelar
End Sub
Sub Limpiar_Categoria()
HabilitarCajas(True)
LimpiarCajas()
habilitarBotones(False, True, False, True)
Dim objCategoriaNE = New CategoriaNE
Me.txtCodigo.Text = objCategoriaNE.CodCategoria()
End Sub
Sub Nueva_Categoria()
Dim objCategoriaE = New Categoria
Dim objCategoriaNE = New CategoriaNE
objCategoriaE.idCategoria = CInt(txtCodigo.Text)
objCategoriaE.NombreCategoria = txtNombre.Text
objCategoriaE.DescripcionCategoria = txtdescripcion.Text
Dim salida As String = objCategoriaNE.AgregarCategoria(objCategoriaE)
MsgBox(salida)
dgvCategoria.DataSource = objCategoriaNE.listarCategorias
habilitarBotones(True, False, False, False)
HabilitarCajas(False)
End Sub
Sub actualizar_Categorias()
If txtCodigo.Text <> "" Then
Dim objCategoriaE = New Categoria
Dim objCategoriaNE = New CategoriaNE
objCategoriaE.idCategoria = CInt(txtCodigo.Text)
objCategoriaE.NombreCategoria = txtNombre.Text
objCategoriaE.DescripcionCategoria = txtdescripcion.Text
Dim salida As String = objCategoriaNE.ActualizarCategoria(objCategoriaE)
MsgBox(salida)
dgvCategoria.DataSource = objCategoriaNE.listarCategorias
Else
MsgBox("Ingrese los datos para actualizar")
End If
habilitarBotones(True, False, False, False)
HabilitarCajas(False)
End Sub
Sub Cancelar_Categoria()
BuscarCategorias(1)
HabilitarCajas(False)
habilitarBotones(True, False, False, False)
End Sub
Sub BuscarCategorias(ByVal codigo As Integer)
Dim objCategoriaNE As CategoriaNE
objCategoriaNE = New CategoriaNE
Dim objCategoriaE As New Categoria
Dim idCategoria As Integer
idCategoria = objCategoriaNE.CodCategoria() - 1
If codigo > idCategoria Then
MsgBox("Registros no Encontrado")
Else
objCategoriaE = objCategoriaNE.listarCategoria(codigo)
Me.txtCodigo.Text = objCategoriaE.idCategoria

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Me.txtNombre.Text = objCategoriaE.NombreCategoria
Me.txtdescripcion.Text = objCategoriaE.DescripcionCategoria
End If
habilitarBotones(False, False, True, True)
HabilitarCajas(True)
End Sub
Sub Buscar_Categoria()
Dim objCategoriaNE As CategoriaNE
objCategoriaNE = New CategoriaNE
Dim objCategoriaE As New Categoria
Dim codigo As Integer = CInt(InputBox("Ingrese Código Categoria"))
BuscarCategorias(codigo)
End Sub
Private Sub dgvCategoria_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvCategoria.CellClick
If dgvCategoria.Rows.Count > 0 Then
Dim dgvFila As DataGridViewRow = Me.dgvCategoria.CurrentRow()
Me.txtCodigo.Text = dgvFila.Cells(0).Value
Me.txtNombre.Text = dgvFila.Cells(1).Value
Me.txtdescripcion.Text = dgvFila.Cells(2).Value
Else
MsgBox("No hay ningun registro seleccionado")
End If
habilitarBotones(False, False, True, True)
HabilitarCajas(True)
End Sub

End Class

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Ejecución de la aplicación

1. Ejecutamos el Menú Principal:

Ing. Hobby Saavedra Rosas

2. Menú Mantenimiento: Opción Producto

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


 Opciones:
 Nuevo:
Clic en el botón nuevo, y nos genera automáticamente el código del nuevo
producto, procedemos a ingresar los datos del producto y seleccionamos la
categoría:

 Grabar:
Después de haber ingresado los datos, hacemos clic en el botón Grabar, y
observamos que el registro fue guardado con éxito.

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


 Actualizar:
Para Actualizar tenemos dos opciones, respecto al registro a modificar,
podemos seleccionar el DataGridView, o realizar la búsqueda por el código del
producto que deseamos modificar.
Actualizamos los datos del producto de código 7.

 Cancelar:
Sirve para deshacer alguna acción que no estamos seguros de hacerlo.

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Por ejemplo acá intentamos modificar los datos pero abortamos dicha acción
por lo tanto cancelamos y nos muestra el primer registro.

 Buscar:
Realizamos la búsqueda del producto de código 8

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Clic en aceptar del cuadro de dialogo:

Ahora ya podemos actualizar los datos del producto. Si este existiera en la base de
datos.

3. Menú Mantenimiento: Opción Categoría

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Opciones:
Nuevo:
Ingresamos los datos de la nueva categoría:

Grabar:
Hacemos clic en grabar, para registrar la nueva categoría en la base de datos.

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Actualizar:
Ahora es parecido al proceso que se realiza para el producto, en este caso vamos
actualizar los datos de la categoría de código 4:

Luego clic en el botón Actualizar.

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER


Buscar:
Vamos a buscar los datos de la categoría de Código 3:

Ing. Hobby Saavedra Rosas VB.NET Y SQL SERVER

También podría gustarte