Está en la página 1de 8

Creando Base de Datos y Tabla

CREATE TABLE [Empleado]( [CodEmpleado] [char](10) NOT NULL, [Nombres] [varchar](100) NULL, [ApePaterno] [varchar](50) NULL, [ApeMaterno] [varchar](50) NULL, [FecNacimiento] [date] NULL, [CodSexo] [char](3) NULL, [Foto] [image] NULL, [CodEstado] [char](3) NULL, [Terminal] [varchar](15) NULL, [FechaRegi] [datetime] NULL, [UsuarioRegi] [varchar](15) NULL, [FechaModi] [datetime] NULL, [UsuarioModi] [varchar](15) NULL, CONSTRAINT [PK_Empleado] PRIMARY KEY CLUSTERED ( [CodEmpleado] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

IGNORE_DUP_KEY

OFF,

Procedimientos Almacenados
--STORED PROCEDURE PARA GENERAR CODIGO DE EMPLEADO CREATE PROCEDURE [dbo].[USP_Empleado_GenerarCodigo] AS BEGIN select 'EMP' + RIGHT('0000000'+CONVERT(VARCHAR(20),ISNULL(MAX(RIGHT(CodEmpleado,7)),0)+1),7) from Empleado END GO -- STORED PROCEDURE PARA INSERTAR CREATE PROCEDURE [dbo].[USP_Empleado_Insertar] ( @CodEmpleado char(10), @Nombres varchar(100) = NULL, @ApePaterno varchar(50) = NULL, @ApeMaterno varchar(50) = NULL, @FecNacimiento date = NULL, @CodSexo char(3) = NULL, @Foto image = NULL, @CodEstado char(3) = NULL, @Terminal varchar(15) = NULL, @UsuarioRegi varchar(15) = NULL) AS BEGIN INSERT INTO [Empleado] ( [CodEmpleado], [Nombres], [ApePaterno], [ApeMaterno], [FecNacimiento], [CodSexo], [Foto], [CodEstado], [Terminal],

[FechaRegi], [UsuarioRegi] ) VALUES ( @CodEmpleado, @Nombres, @ApePaterno, @ApeMaterno, @FecNacimiento, @CodSexo, @Foto, @CodEstado, @Terminal, GETDATE(), @UsuarioRegi ) END GO --STORED PROCEDURE PARA ACTUALIZAR CREATE PROCEDURE [USP_Empleado_Actualizar] ( @CodEmpleado char(10), @Nombres varchar(100) = NULL, @ApePaterno varchar(50) = NULL, @ApeMaterno varchar(50) = NULL, @FecNacimiento date = NULL, @CodSexo char(3) = NULL, @Foto image = NULL, @CodEstado char(3) = NULL, @Terminal varchar(15) = NULL, @UsuarioModi varchar(15) = NULL) AS BEGIN UPDATE [Empleado] SET [CodEmpleado] = @CodEmpleado, [Nombres] = @Nombres, [ApePaterno] = @ApePaterno, [ApeMaterno] = @ApeMaterno, [FecNacimiento] = @FecNacimiento, [CodSexo] = @CodSexo, [Foto] = @Foto, [CodEstado] = @CodEstado, [Terminal] = @Terminal, [FechaModi] = GETDATE(), [UsuarioModi] = @UsuarioModi WHERE [CodEmpleado] = @CodEmpleado END GO --STORED PROCEDURE PARA ELIMINAR CREATE PROCEDURE [USP_Empleado_Eliminar] ( @CodEmpleado char(10) ) AS BEGIN

DELETE FROM Empleado WHERE [CodEmpleado] = @CodEmpleado END GO --PROCEDURE PARA LISTAR REGISTROS POR CRITERIO DE BUSQUEDA CREATE PROCEDURE [dbo].[USP_Empleado_Listar] @Criterio varchar(150) AS begin select Empleado=ApePaterno+' '+ApeMaterno+' '+Nombres,* from Empleado where (ApePaterno+''+ApeMaterno+''+Nombres) like '%'+@Criterio+'%' end

Capa Entidades Clase EmpleadoBE


Public Class EmpleadoBE 'Campos de la entidad Private _CodEmpleado As String Private _Nombres As String Private _ApePaterno As String Private _ApeMaterno As String Private _FecNacimiento As Date Private _CodSexo As String Private _Foto As Byte() Private _CodEstado As String Private _Terminal As String Private _FechaRegi As Date Private _UsuarioRegi As String Private _FechaModi As Date Private _UsuarioModi As String 'Propiedades de la entidad Public Property CodEmpleado() As String Get Return _CodEmpleado End Get Set(ByVal value As String) _CodEmpleado = value End Set End Property Public Property Nombres() As String Get Return _Nombres End Get Set(ByVal value As String) _Nombres = value End Set End Property

Capa Acceso a Datos La Clase conexin.vb


Imports System.Data Imports System.Data.SqlClient Public Class Conexion Public Function Conexion() As SqlConnection 'Cambiar la Base de Datos y el Password de acuerdo a su configuracion Dim cadconex As String = "Server=.;DATABASE=xxx;User ID=sa;Password=xxx" Dim cn As New SqlConnection(cadconex) Return cn End Function End Class

Clase EmpleadoDA
Imports BusinessEntities 'Importamos la capa de entidades, si tienen error es porque no se agrego la referencia Imports System.Data Imports System.Data.SqlClient Public Class EmpleadoDA 'Instanciamos el objeto _Conexion de la clase Conexion para obtener la cadena de conexion a la BD Dim _Conexion As New Conexion 'Funcion que me ve permitir generar el codigo del empleado Private Function GenerarCorrelativo() As String Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Dim dt As New DataTable cmd.Connection = _Conexion.Conexion cmd.CommandText = "USP_Empleado_GenerarCodigo" cmd.CommandType = CommandType.StoredProcedure da.SelectCommand = cmd da.Fill(dt) Return dt.Rows(0).Item(0) End Function 'Metodo para registrar un nuevo empleado Private Sub Registrar(ByVal EmpleadoBE As EmpleadoBE, ByVal sqlCon As SqlConnection, _ ByVal sqlTrans As SqlTransaction) Try Dim cmd As New SqlCommand cmd.CommandText = "USP_Empleado_Insertar" cmd.Connection = sqlCon cmd.Transaction = sqlTrans cmd.CommandType = CommandType.StoredProcedure 'Los parametros que va recibir son las propiedades de la clase Empleado cmd.Parameters.Add("@CodEmpleado", SqlDbType.Char).Value = EmpleadoBE.CodEmpleado cmd.Parameters.Add("@Nombres", SqlDbType.VarChar).Value = EmpleadoBE.Nombres cmd.Parameters.Add("@ApePaterno", SqlDbType.VarChar).Value = EmpleadoBE.ApePaterno cmd.Parameters.Add("@ApeMaterno", SqlDbType.VarChar).Value = EmpleadoBE.ApeMaterno cmd.Parameters.Add("@FecNacimiento", SqlDbType.Date).Value = EmpleadoBE.FecNacimiento cmd.Parameters.Add("@CodSexo", SqlDbType.Char).Value = EmpleadoBE.CodSexo cmd.Parameters.Add("@Foto", SqlDbType.Image).Value = EmpleadoBE.Foto

cmd.Parameters.Add("@CodEstado", SqlDbType.Char).Value = EmpleadoBE.CodEstado cmd.Parameters.Add("@Terminal", SqlDbType.VarChar).Value = EmpleadoBE.Terminal cmd.Parameters.Add("@UsuarioRegi", SqlDbType.VarChar).Value = EmpleadoBE.UsuarioRegi cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub 'Metodo para Modificar un empleado Private Sub Modificar(ByVal EmpleadoBE As EmpleadoBE, ByVal sqlCon As SqlConnection, _ ByVal sqlTrans As SqlTransaction) Try Dim cmd As New SqlCommand cmd.CommandText = "USP_Empleado_Actualizar" cmd.Connection = sqlCon cmd.Transaction = sqlTrans cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@CodEmpleado", SqlDbType.Char).Value = EmpleadoBE.CodEmpleado cmd.Parameters.Add("@Nombres", SqlDbType.VarChar).Value = EmpleadoBE.Nombres cmd.Parameters.Add("@ApePaterno", SqlDbType.VarChar).Value = EmpleadoBE.ApePaterno cmd.Parameters.Add("@ApeMaterno", SqlDbType.VarChar).Value = EmpleadoBE.ApeMaterno cmd.Parameters.Add("@FecNacimiento", SqlDbType.Date).Value = EmpleadoBE.FecNacimiento cmd.Parameters.Add("@CodSexo", SqlDbType.Char).Value = EmpleadoBE.CodSexo cmd.Parameters.Add("@Foto", SqlDbType.Image).Value = EmpleadoBE.Foto cmd.Parameters.Add("@CodEstado", SqlDbType.Char).Value = EmpleadoBE.CodEstado cmd.Parameters.Add("@Terminal", SqlDbType.VarChar).Value = EmpleadoBE.Terminal cmd.Parameters.Add("@UsuarioModi", SqlDbType.VarChar).Value = EmpleadoBE.UsuarioModi cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub 'Metodo para Eliminar un empleado Private Sub Eliminar(ByVal EmpleadoBE As EmpleadoBE, ByVal sqlCon As SqlConnection, _ ByVal sqlTrans As SqlTransaction) Try Dim cmd As New SqlCommand cmd.CommandText = "USP_Empleado_Eliminar" cmd.Connection = sqlCon cmd.Transaction = sqlTrans cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@CodEmpleado", SqlDbType.Char).Value = EmpleadoBE.CodEmpleado cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.ToString)

End Try End Sub 'Funcion Principal que hara toda la logica para grabar la data Public Function GrabarEmpleado(ByVal EmpleadoBE As EmpleadoBE, ByVal flagAccion As String) As Boolean Dim resultado As Boolean = True Dim cn As New SqlConnection Dim sqlTrans As SqlTransaction Dim correlativo As String cn = _Conexion.Conexion cn.Open() sqlTrans = cn.BeginTransaction Try 'N:Nuevo M:Modificar E:Eliminar

If flagAccion = "N" Then correlativo = GenerarCorrelativo() EmpleadoBE.CodEmpleado = correlativo Registrar(EmpleadoBE, cn, sqlTrans) End If If flagAccion = "M" Then Modificar(EmpleadoBE, cn, sqlTrans) End If If flagAccion = "E" Then Eliminar(EmpleadoBE, cn, sqlTrans) End If

sqlTrans.Commit() resultado = True Catch ex As SqlException sqlTrans.Rollback() resultado = False Catch ex As Exception sqlTrans.Rollback() resultado = False Finally cn.Close() sqlTrans = Nothing End Try Return resultado End Function

'Funcion que me va permitir capturar la lista de registros en la tabla empleado y que me va retornar 'un Datatable Public Function ListarEmpleados(ByVal Criterio As String) As DataTable Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Dim dt As New DataTable cmd.Connection = _Conexion.Conexion cmd.CommandText = "USP_Empleado_Listar" cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@Criterio", SqlDbType.VarChar).Value = Criterio da.SelectCommand = cmd da.Fill(dt) Return dt

End Function End Class Capa Lgica Clase EmpleadoBL Imports BusinessEntities 'Importamos la capa de entidades Imports DataAccess 'Importamos la capa de acceso a datos Public Class EmpleadoBL 'Instanciamos el objeto _EmpleadoDA de la Clase EmpleadoDA Dim _EmpleadoDA As New EmpleadoDA Public Function GrabarEmpleado(ByVal EmpleadoBE As EmpleadoBE, _ ByVal flagAccion As String) As Boolean Return _EmpleadoDA.GrabarEmpleado(EmpleadoBE, flagAccion) End Function Public Function ListarEmpleados(ByVal Criterio As String) As DataTable Return _EmpleadoDA.ListarEmpleados(Criterio) End Function End Class Capa Presentacin Cdigo Formulario 'Importando la Capa de Entidades y la Capa Logica Imports BusinessEntities Imports BusinessLogic 'Importacion necesaria para trabajar con las imagenes Imports System.IO Public Class FrmTutorial '************** DECLARACION DE VARIABLES GLOBALES ****************' Dim _EmpleadoBL As New EmpleadoBL Dim flagAccion As String = "" '******************** METODOS *************************************' Private Sub NueModEli() btnNuevo.Enabled = False btnModificar.Enabled = False btnEliminar.Enabled = False btnGrabar.Enabled = True btnCancelar.Enabled = True End Sub End Class

Estructura Solucin

También podría gustarte