Tutorial de MANTENIMIENTO en VISUAL BASIC Y SQL SERVER



Proyecto realizado en Visual Studio 2019 sobre mantenimiento de datos que permite registrar, modificar, eliminar y limpiar por completo las cajas de texto, además se trabaja con fechas (fecha de ingreso y termino) y al momento de agregar un nuevo usuario para la base de datos se crea un código único. Para modificar a los usuarios, solo debemos de seleccionar la fila del usuario a modificar y los datos pasaran a las cajas de texto, recuerda que un usuario ya registrado no se puede modificar su código.

Base de datos y procedimiento almacenado

Se crea la base de datos "tutovai", luego usar la base de datos creada, crear la tabla "Empleados", la tabla Empleados tendrá el código que será único para cada usuario, el nombre, dirección, la fecha que ingreso a trabajar, la fecha que termino de trabajar y el área al que pertenece. (Estos datos son usados y funciona solo para este proyecto)

create database tutovai
go

use tutovai
go

create table Empleados
(
cod_emp char(5) primary key not null,
usr_nom varchar(50),
usr_direccion varchar(50),
fecha_ing date,
fecha_ter date,
ar_trabajo char(1)
)
go

Creamos el procedimiento almacenado para listar, registrar, eliminar y modificar.

El procedimiento "pb_listar", se encargará de seleccionar y listar por completo los datos de todo los empleados.

El procedimiento "pb_nuevo", se encargará de registrar al nuevo empleado a la base de datos y en el proceso crear el código para este usuario. (El código para cada usuario se crea en este procedimiento y se hace de forma automática)

El procedimiento "pb_eliminar", se encargará de borrar por completo los datos del empleado seleccionado. (El código de este usuario eliminado no se puede recuperar)

El procedimiento "pb_modificar", se encargará de actualizar los datos de cada empleado. (El código será el único dato que no se podrá modificar)

---LISTAR---
create proc pb_listar
as
select * from Empleados
go

---REGISTRAR---

create proc pb_nuevo
@nombre varchar(50),
@direccion varchar(50),
@fechaing date,
@fechater date,
@area char(1)
as
declare @codigonuevo varchar(5)
set @codigonuevo= (select MAX(cod_emp) from Empleados)
set @codigonuevo= 'E' + RIGHT ('0000' + LTRIM (right(isnull(@codigonuevo,'0000'),4)+1),4)
insert into Empleados values (@codigonuevo,@nombre,@direccion,@fechaing,@fechater,@area)
go

---ELIMINAR---
create proc pb_eliminar
@codigo char(5)
as
delete from Empleados where cod_emp=@codigo
go

---MODIFICAR---
create proc pb_modificar
@codigo char(5),
@nombre varchar(50),
@direccion varchar(50),
@fechaing date,
@fechater date,
@area char(1)
as
update Empleados set usr_nom=@nombre,usr_direccion=@direccion,fecha_ing=@fechaing,fecha_ter=@fechater,ar_trabajo=@area 
where cod_emp=@codigo
go

---DATOS---
insert into Empleados values('E0001','VaidrollTeam','VaidrollTeam','2013-05-05','2013-10-06',2)

go

exec pb_listar
go


Class1

Conexión

Realizamos la conexión con nuestra base de datos, recuerda escribir bien el nombre de tu servidor y el nombre de la base de datos, en este caso estoy usando "localhost\SQLEXPRESS" y "tutovai".

 Dim cnx As New SqlConnection("server=localhost\SQLEXPRESS;integrated security=true;Database=tutovai")

Función para listar

Una vez realizado la conexión con la base de datos podemos hacer uso de los procedimientos almacenados.

    Public Function ListarEmpleados() As DataTable
        Dim da As New SqlDataAdapter("pb_listar", cnx)
        Dim tbl As New DataTable
        da.Fill(tbl)
        Return tbl
    End Function

Función para registrar

 Public Function Insertar(nom As String, direc As String, fechaing As Date, fechasal As Date, area As Char)
        Dim da As New SqlCommand("pb_nuevo", cnx)
        da.CommandType = CommandType.StoredProcedure
        da.Parameters.AddWithValue("@nombre", nom)
        da.Parameters.AddWithValue("@direccion", direc)
        da.Parameters.AddWithValue("@fechaing", fechaing)
        da.Parameters.AddWithValue("@fechater", fechasal)
        da.Parameters.AddWithValue("@area", area)
        cnx.Open()
        Dim resp As Integer
        Try
            resp = da.ExecuteNonQuery
            cnx.Close()
        Catch ex As Exception
            MsgBox("Error al registrar usuario")
        End Try
        Return resp
    End Function

Función para eliminar

 Public Function Eliminar(codigo As String)
        Dim elim As New SqlCommand("pb_eliminar", cnx)
        elim.CommandType = CommandType.StoredProcedure
        elim.Parameters.AddWithValue("@codigo", codigo)
        cnx.Open()
        Dim elim1 As String = elim.ExecuteNonQuery
        cnx.Close()
        Return elim1
    End Function

Función para modificar

    Public Function Modificar(codigo As String, nombre As String, direccion As String, fechaing As Date, fechasal As Date, area As Char) As Integer
        Dim act As New SqlCommand("pb_modificar", cnx)
        act.CommandType = CommandType.StoredProcedure
        act.Parameters.AddWithValue("@codigo", codigo)
        act.Parameters.AddWithValue("@nombre", nombre)
        act.Parameters.AddWithValue("@direccion", direccion)
        act.Parameters.AddWithValue("@fechaing", fechaing)
        act.Parameters.AddWithValue("@fechater", fechasal)
        act.Parameters.AddWithValue("@area", area)
        cnx.Open()
        Dim actu1 As String = act.ExecuteNonQuery
        cnx.Close()
        Return actu1
    End Function

Formulario

Luego de crear nuestra clase solo debemos de importar y empezar a llamar a cada función.

Importar la librería

Imports ClassLibrary1

Dim obj As New Class1

Formulario_Load

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        DataGridView1.DataSource = obj.ListarEmpleados

    End Sub

Botón nuevo

    Private Sub btnnuevo_Click(sender As Object, e As EventArgs) Handles btnnuevo.Click
        txtnombre.Text = ""
        txtdireccion.Text = ""
        txtarea.Text = ""
        lblcodigo.Text = "E0000"
        DateTimePicker1.Value = DateTime.Now
        DateTimePicker2.Value = DateTime.Now
    End Sub

Botón registrar

    Private Sub btnregistrar_Click(sender As Object, e As EventArgs) Handles btnregistrar.Click

        Try
            obj.Insertar(txtnombre.Text, txtdireccion.Text, (CDate(DateTimePicker1.Text)), (CDate(DateTimePicker2.Text)), txtarea.Text)
            DataGridView1.DataSource = obj.ListarEmpleados
            MsgBox("Se registro el usuario: " + txtnombre.Text)

            txtnombre.Text = ""
            txtdireccion.Text = ""
            txtarea.Text = ""
            lblcodigo.Text = "E0000"
            DateTimePicker1.Value = DateTime.Now
            DateTimePicker2.Value = DateTime.Now

        Catch ex As Exception
            MsgBox("404 Error al registrar ")
        End Try

    End Sub

Botón modificar

    Private Sub btnmodificar_Click(sender As Object, e As EventArgs) Handles btnmodificar.Click

        Try
            obj.Modificar(lblcodigo.Text, txtnombre.Text, txtdireccion.Text, DateTimePicker1.Text, DateTimePicker2.Text, txtarea.Text)
            DataGridView1.DataSource = obj.ListarEmpleados
            MsgBox("Se modifico el usuario con código: " + lblcodigo.Text)

            txtnombre.Text = ""
            txtdireccion.Text = ""
            txtarea.Text = ""
            lblcodigo.Text = "E0000"
            DateTimePicker1.Value = DateTime.Now
            DateTimePicker2.Value = DateTime.Now

        Catch ex As Exception
            MsgBox("404 Error al modificar ")
        End Try

    End Sub

Botón eliminar

    Private Sub btneliminar_Click(sender As Object, e As EventArgs) Handles btneliminar.Click

        Try
            obj.Eliminar(lblcodigo.Text)
            DataGridView1.DataSource = obj.ListarEmpleados
            MsgBox("Se elimino el usuario con código: " + lblcodigo.Text)

            txtnombre.Text = ""
            txtdireccion.Text = ""
            txtarea.Text = ""
            lblcodigo.Text = "E0000"
            DateTimePicker1.Value = DateTime.Now
            DateTimePicker2.Value = DateTime.Now
        Catch ex As Exception

            MsgBox("404 Error al eliminar ")

        End Try

    End Sub

DataGridView1_CellContentClick

    Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

        lblcodigo.Text = DataGridView1.Item(0, e.RowIndex).Value
        txtnombre.Text = DataGridView1.Item(1, e.RowIndex).Value
        txtdireccion.Text = DataGridView1.Item(2, e.RowIndex).Value
        DateTimePicker1.Text = DataGridView1.Item(3, e.RowIndex).Value
        DateTimePicker2.Text = DataGridView1.Item(4, e.RowIndex).Value
        txtarea.Text = DataGridView1.Item(5, e.RowIndex).Value

    End Sub



Diseño del formulario con los datos del empleado.




En el vídeo se muestra la creación de este proyecto desde cero y la explicación del código.




  • Visual Studio 2019
  • Microsoft SQL Server Management Studio 18


  • Nombre          : MantenimientoVB.rar
  • Tamaño          : 144 KB