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