You are on page 1of 26

APLICACIN VB.NET Y SQL SERVER ARQUITECTURA TRES CAPAS 1. Desarrollar una aplicacin 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 Categoras (Reportar, Insertar, Actualizar y Eliminar) 2. Bsqueda por cdigo, nombre y precio 3. Formulario Mantenimiento de Productos(Reportar, Insertar, Actualizar y Eliminar) 4. Bsqueda por Nombre de categora Ayuda: Crear para cada tabla una clase: Primeramente empezamos con la creacin de la base de datos y nuestros procedimientos almacenados: Procedimientos para generar los cdigos de los nuevos registros.

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

Procedimientos para insertar tanto productos como categoras.

Procedimientos almacenados para actualizar productos y categoras

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

Procedimientos almacenados para listar productos y categoras

Procedimientos almacenados para buscar productos y categoras

Procedimiento almacenado para llenar el ComboBox categora Claro siempre y cuando desee recuperar solo algunos registros o en todo caso usar el listar categoras:

Biblioteca Entidades 1. Clase Categora


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 conexin If objConexion.obtenerconexion.State = ConnectionState.Open Then objConexion.obtenerconexion.Close() Else objConexion.obtenerconexion.Open() End If 'Creamos los parmetros '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 conexin '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 conexin '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 conexin '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 Conexin 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 Presentacin Men Principal:

Formularios: FrmProducto

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

FrmCategoria

Cdigo fuente de la aplicacin 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 Cdigo 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 Cdigo 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

Ejecucin de la aplicacin 1. Ejecutamos el Men Principal:

Ing. Hobby Saavedra Rosas


2. Men Mantenimiento: Opcin Producto

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

Opciones: Nuevo: Clic en el botn nuevo, y nos genera automticamente el cdigo del nuevo producto, procedemos a ingresar los datos del producto y seleccionamos la categora:

Grabar: Despus de haber ingresado los datos, hacemos clic en el botn 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 bsqueda por el cdigo del producto que deseamos modificar. Actualizamos los datos del producto de cdigo 7.

Cancelar: Sirve para deshacer alguna accin 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 accin por lo tanto cancelamos y nos muestra el primer registro.

Buscar: Realizamos la bsqueda del producto de cdigo 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: Opcin Categora

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

Opciones: Nuevo: Ingresamos los datos de la nueva categora:

Grabar: Hacemos clic en grabar, para registrar la nueva categora 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 categora de cdigo 4:

Luego clic en el botn Actualizar.

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

Buscar: Vamos a buscar los datos de la categora de Cdigo 3:

Ing. Hobby Saavedra Rosas

VB.NET Y SQL SERVER

You might also like