Sie sind auf Seite 1von 48

Sistema X ( 3 Capas)

1. Se crea la Base de datos, se relaciona las tablas y se crean los procedimientos almacenados y se guardan
2. En Visual Studio se debe tener claro el esquema que tendra el Sistema que se va a Desarrollar en este caso vamos a representar en
carpetas con las diferentes capas del Sistema.
2.1. Esquema de Tres capas del Sistema

PAG. 1
2.2. Esquema de la Capa Presentacion con los diferentes formularios del Sistema(La capa de presentacion es donde se colocan todos los
formularios(Interfaces) del sistema, asi como los reportes y los archivos necesarios en el sistema como imgenes y/o archivos que se
necesite en el sistema.

PAG. 2
2.3. Esquema de la Capa de Logica con las diferentes clases que tendra(La capa Logica es donde se guardan clases de la Bd o una clase por
cada tabla de la Base de datos y cada clase con sus objetos y atributos)

PAG. 3
2.4. Esquema de la Capa de datos con las diferentes clases que tendra(La capa Datos es donde tenemos la clase para conectarse a la base de
datos y tambien las funciones que se necesitan para interactuar con la base de datos, como ser la Funcion insertar, modificar, eliminar,
etc, o cualquier consulta que se vaya a hacer con la base de datos, dependiendo de la tabla o tablas que se vayan a utilizar en la consulta
a la base de datos)

PAG. 4
3. Para trabajar en Visual Studio y poder crear una solucion completa para el sistema que se va a desarrollar, siga los pasos acontinuacion:
3.1. Ingresar a Visual Studio
3.2. Clic en Archivo/Nuevo Proyecto/Otros tipos de Proyectos/Soluciones de Visual Studio/ Seleccionar Solucion en Blanco
3.3. Seleccionar la ubicacin que tendra la Solucion, crearle una carpeta para guardar la solucion que se va a implementar
3.4. Colocar nombre a la Solucion y luego guargarla.
3.5. Luego se debe agregar a la solucion las 3 capas
3.5.1. Para la capa Presentacion, clic en Archivo/agregar/Nuevo Proyecto/Seleccione el lenguaje de Programacion con el cual va a
trabajar(En nuestro caso Visual Basic)/Clic en Aplicacin Windows Form/
3.5.2. Seleccione la carpeta donde va a guardar esta capa y el nombre para el archivo Sera Presentacion
3.5.3.Para la capa presentacion si usted ya tiene un formulario hecho, lo debe adicionar simplemente a esta solucion, dar clic en
archivo/agregar/Proyecto existente/ y seleccionar el archivo que tiene su formulario
3.5.4.Para la capa Datos, clic en Archivo/agregar/Nuevo Proyecto/Seleccione el lenguaje de Programacion con el cual va a trabajar(En
nuestro caso Visual Basic)/Clic en Biblioteca de Clases/
3.5.5.Seleccione la carpeta donde va a guardar esta clase y el nombre para el archivo Sera Datos
3.5.5.1. En esta capa vamos a adicionar todas las funciones que se van a necesitar para trabajar con la base de datos
3.5.6.Para la capa Logica, clic en Archivo/agregar/Nuevo Proyecto/Seleccione el lenguaje de Programacion con el cual va a trabajar(En
nuestro caso Visual Basic)/Clic en Biblioteca de Clases/
3.5.7.Seleccione la carpeta donde va a guardar esta clase y el nombre para el archivo Sera Logica

Una vez creada la solucion con las 3 capas, vamos a empezar a trabajar el Sistema.

PAG. 5
Vamos a empezar a trabajar con el Sistema que vamos a desarrollar, para ello, primero crearemos
la base de datos con las tablas que corresponden y luego vamos a trabajar en Visual:

1. En SQL vamos a crear la Base de datos DbSistemax, mediante script de consultas

Create Database DbSistemax

2. Luego usamos la Base de datos DbSistemax para crear la o las tablas:

use DbSistemax

3. Empezamos a crear la primera tabla Registro_Usuario,

Create Table Registro_Usuario(Codigo_Usuario int not null,


nombre varchar(50) not null,
apellidos varchar(50), usuario varchar(50) not null,
tipousuario varchar(50) not null,
contrasena varchar(50) not null,
contrasena2 varchar(50) not
null, primary key
(Codigo_Usuario));

4. Si usted desea colocar el campo Codigo_Usuario con datos de autoincremento, debe colocar
el siguiente cdigo en el momento de creacin de la tabla, donde el campo llave ser
autoincrementable de uno en uno y empezar desde uno la numeracin.

Create Table Registro_Usuario(Codigo_Usuario int IDENTITY(1,1) not null,


nombre varchar(50) not null,
apellidos varchar(50),
usuario varchar(50) not null,
tipousuario varchar(50) not null,

contrasena varchar(50) not null,

contrasena2 varchar(50) not null,


primary key (Codigo_Usuario));

5. En nuestro Sistema el campo Codigo_Usuario, ser insertado por el usuario y por lo tanto
usamos el primer script para la creacin de la tabla y no usaremos el segundo.

PAG. 6
6. Guardar todos los cambios en SQL Server y luego nos vamos a Visual para empezar a programar
nuestro sistema.

Si usted ya prepar Visual Studio con sus 3 capas como indica en la pagina 5 de este manual,
puede continuar, pero si no ha preparado todavia, siga paso a paso lo que indica en la
pagina 5 y luego continue.

Una vez creadas las 3 capas vamos a empezar a trabajar en cada capa para ir organizando nuestras
clases en la capa que corresponde:

1. Primero vamos a trabajar en la capa Datos para poder hacer la conexin a la base de
datos.
2. Seleccione la capa Datos y le vamos a cambiar el nombre a la clase Class1.vb, ahora
el nombre de la clase ser conexin.vb
3. Vamos a adicionar una clase para trabajar el inicio de sesin donde comprobara si
estn correctos los datos del usuario, la contrasea y el tipo de usuario en la base de
datos(Para eso vamos a adicionar una clase que se va a llamar: Fusuario, para
agregar la clase se selecciona la Capa datos/ clic derecho/agregar/clase/este este
caso el nombre ser Fusuario

PAG. 7
8. Empezaremos a trabajar en la clase conexin.vb que ya tenemos creada para hacer la
conexin de nuestro sistema con la base de datos, dar doble clic en la clase conexin.vb para
colocar el cdigo fuente y hacer la conexin a la base de datos.

Public Class conexion

End Class

9. En la clase conexin, vamos a utilizar librera SQL, para eso debe colocarla al inicio de la clase:
Imports System.Data.SqlClient

Imports System.Data.SqlClient
Public Class conexion

End Class

10. Posteriormente vamos a hacer la conexin con la base de datos que en este caso lo vamos a
hacer de forma grfica, para eso escriba el siguiente cdigo y vamos a codificar la Funcion
Conectado():

Imports System.Data.SqlClient
Public Class conexion

Public conex As New SqlConnection 'var conex es para la conexion


Public comand As New SqlCommand 'var comand es para los comandos

Public Function conectado()


Try
conex = New SqlConnection(My.Settings) 'aqui se coloca la direccion de
la DataBase para abrirla

Catch ex As Exception

Return
End Try

End Function

End Class

11. En la cadena de la conexin para la base de datos se coloca:


conex = New SqlConnection(My.Settings)
12. Y deje el cursor ah para configurar de forma grfica la conexin con la base de
datos, siguiendo los siguientes pasos:
a. En la capa datos, en My Proyect dar doble clic

PAG. 8

PAG. 8
b. Configurar Como muestra en la imagen:

P
A
G
.

9
c. Al dar Clic para hacer la conexin, elegir el origen de datos MS SQL SERVER, / Origen
de Datos/ MSSQL SERVER (SQL CLIENT) y le aparece el siguiente Cuadro:

d. Abra SQL SERVER y al abrir le muestra los datos del nombre del Servidor de Base de
Datos y el tipo de autenticacin que tiene configurado:

PAG. 10
e. Para no tener problemas con el nombre del Servidor, cpielo el nombre y llvelo a
Visual donde est configurando su conexin:

PAG. 11

PAG. 11
f. Luego volver al cuadro anterior con todos los datos llenos

PAG. 12
g. Guarde todos los cambios, cierre el cuadro de la configuracin y continu haciendo
la Funcin Conectado()

Imports System.Data.SqlClient
Public Class conexion

Public conex As New SqlConnection 'var conex es para la conexion


Public comand As New SqlCommand 'var comand es para los comandos

Public Function conectado()


Try
conex = New SqlConnection(My.Settings) 'aqui se coloca la direccion de
la DataBase para abrirla

Catch ex As Exception

Return
End Try

End Function

End Class

h. Si todo est bien en la lnea: My.Settings, ponga punto al final de Settings.


Y aparecer el nombre de su base de datos para la conexin:

PAG. 13

PAG. 13
i. Luego contine colocando todo el cdigo para la Funcin Conectado() que se debe
poner en la clase conexion:

Imports System.Data.SqlClient
Public Class conexion

Public conex As New SqlConnection 'var conex es para la conexion


Public comand As New SqlCommand 'var comand es para los comandos

Public Function conectado()


Try
conex = New SqlConnection(My.Settings.Dbsistemax) 'aqui se coloca
la direccion de la DataBase para abrirla
conex.Open()
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try

End Function

End Class

j. Una vez termino de hacer la Funcin, escriba o codifique al final de la Funcin


conectado la funcion desconectado(), dentro de la clase Conexin.

Public Function desconectado()


Try
If conex.State = ConnectionState.Open Then
conex.Close()
End If
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try

End Function

k. Guarde todos los cambios en la clase conexin, de la Capa Datos.


l. En la misma Capa Datos vamos a agregar una nueva clase que se llamara Fusuario:
m. Dar clic derecho en la Capa Datos, Agregar/Nueva clase/
n. El nombre para la clase sera: Fusuario y clic en aceptar

PAG. 14
Public Class Fusuario

End Class

Vamos a importar la librera SQL con el siguiente codigo: Imports System.Data.SqlClient

Imports System.Data.SqlClient

Public Class Fusuario

End Class

o. Luego hay que importar la (Capa Lgica) y para eso hay que insertar una Referencia
a la clase, dar clic en la Capa Datos, seleccionar Agregar Referencia y seleccionar la
capa logica como muestra en la imagen y clic en aceptar:

PAG. 15

PAG. 15
p. Hacer lo mismo en la Capa Presentacin, solo que ah, se va a agregar referencia a la
(Capa Logica) y la Capa Datos:

q. Una vez agregada la referencia de las clases en cada capa, primero vamos a trabajar
en la capa lgica en la clase que se llama Class1.vb, le cambiaremos el nombre por
Eusuario.vb

PAG. 16

PAG. 16
r. En la clase Eusuario, vamos a colocar procedimientos para obtener y asignar valores
a los atributos de la tabla que vamos a utilizar para el inicio de sesin de la base de
datos, con sus constructores y todo para poder trabajar con esos campos, con los
Set(El valor que vamos a signar) y los Get(Lo que vamos a obtener).

Public Class Eusuario


Private usuario As String
Private contrasena As String
Private tipousuario As String
Public Property _usuario
Get
Return usuario
End Get
Set(value)
usuario = value
End Set
End Property
End Class

s. Se debe hacer Getter y Setter para cada uno de los atributos de la tabla.

Public Class Eusuario


Private usuario As String
Private contrasena As String
Private tipousuario As String
Public Property _usuario
Get
Return usuario
End Get
Set(value)
usuario = value
End Set
End Property
Public Property _contrasena
Get
Return contrasena
End Get
Set(value)
contrasena = value
End Set
End Property
End Class

t. Una vez coloc los procedimientos de los mtodos de los getter y setter de cada
campo de la tabla, al final de los metodos Get y Set(Getter y Seeter), debe hacer los
constructores de todos los mtodos con los datos de la tabla.

Public Sub New(ByVal usuario As String, ByVal contrasena As String, ByVal tipousuario As String)
_usuario = usuario
_contrasena = contrasea
_tipousuario=tipousuario

End Sub
Public Sub New()

End Sub

PAG. 17
u. La clase Eusuario debe quedar as:

Public Class Eusuario


Private usuario As String
Private contrasena As String
Private tipousuario As String

Public Property _usuario


Get
Return usuario
End Get

Set(value)
usuario = value
End Set

End Property

Public Property _contrasena


Get
Return contrasena
End Get

Set(value)
contrasena = value
End Set

End Property

Public Property _tipousuario


Get
Return tipousuario
End Get

Set(value)
tipousuario = value
End Set

End Property

Public Sub New(ByVal usuario As String, ByVal contrasena As String, ByVal tipousuario As String)

Me._usuario = usuario
Me._contrasena = contrasena
Me._tipousuario = tipousuario

End Sub

Public Sub New()

End Sub

End Class

PAG. 18
v. Con eso terminamos la clase Eusuario, guarde los cambios y vamos a trabajar en la
Capa Datos, en la Clase Fusuario

Imports System.Data.SqlClient

Public Class Fusuario

End Class

v. Se debe tomar en cuenta que se est utilizando Procedimientos


Almacenados en la Base de datos, en esta clase estamos utilizando el
procedimiento: _iniciosesion , para que se pueda iniciar sesin en la BD.
vi. El script del procedimiento almacenado _iniciosesion , esta lneas abajo
que para crearlo y guardarlo, se debe abrir SQL SERVER y seleccionar la
Base de datos del Sistema, luego abrir una ventana para consultas para
hacer el Procedimiento Almacenado y en la ventana de consulta escriba lo
siguiente:

create procedure _iniciosesion


@usuario varchar(50),
@contrasena varchar(50),
@tipousuario varchar(50)
as
select *
from Registro_Usuario
where usuario=@usuario and contrasena=@contrasena and tipousuario =@tipousuario
go

vi. Posteriormente salga de SQL y regrese a Visual Studio para trabajar en la Capa
Datos, en la Clase Fusuario

PAG. 19
w. Una vez en la clase Fusuario, vamos a agregar la capa Lgica y la clase conexin para
poder acceder a las funciones y procedimientos que hay en esa clase

Imports System.Data.SqlClient

Imports Logica

Public Class Fusuario


Inherits conexion

End Class

x. Vamos a hacer la funcin validarUsuario()


Imports System.Data.SqlClient
Imports Logica
Public Class FUsuario
Inherits conexion

Public Function validarUsuario(ByVal dat As Eusuario) As DataTable


conectado()
comand = New SqlCommand("_iniciosesion")
comand.CommandType = CommandType.StoredProcedure
comand.Connection = conex
comand.Parameters.AddWithValue("@usuario", dat._usuario)
comand.Parameters.AddWithValue("@contrasena", dat._contrasena)
comand.Parameters.AddWithValue("@tipousuario", dat._tipousuario)

If comand.ExecuteNonQuery Then
Using dt As New DataTable
Using da As New SqlDataAdapter(comand)
da.Fill(dt)
Return dt
End Using
End Using

Else
Return Nothing
End If
desconectado()

End Function

End Class

y. En la lnea: comand = New SqlCommand("_iniciosesion"), estamos llamando al


procedimiento almacenado que tenemos en la base de datos para hacer el inicio de
sesin de usuarios del sistema.

z. Aqu hacemos la conexin con la base de datos, llamamos al procedimiento


almacenado, se especifica que tipo es, se envan los parmetros a la base de datos,
ejecuta la consulta y devuelve los valores que corresponde.

PAG.

PAG. 20
aa. Guardar todos los cambios y luego vamos a empezar a disear el Formulario de Inicio
de Sesin en la capa Presentacin:
bb. Para disear el formulario de inicio de sesin, vamos a utilizar: TextBox, Label,
GroupBox, PictureBox, ProgressBar, Timer.

cc. Coloque un GroupBox y cmbiele el texto que vera el usuario en la propiedad de Text
coloque: Vaco,
dd. Luego coloque Label y TextBox para usuario y contrasea en el inicio de sesion, por
ejemplo para el campo usuario el label le debe cambiar la propiedad Name por
Lbusuario y el TextBox cambiar la propiedad Name por Txtusuario (debe hacer lo
mismo para cada campo de la tabla de su Base de datos, el label y el TextBox debe
tener el mismo nombre del campo de la tabla anteponiendo Lb si es Label y Txt si es
TextBox, ejemplo : Lbusuario y Txtusuario
ee. En el TextBox: Txtcontrasena, cambie la Propiedad PasswordChar, coloque un *,
para que cuando el usuario coloque la contrasea, solo se vea asteriscos.
ff. Vamos a Agregar un ComboBox y en la propiedad del Name:cbotipousuario y en
Items vamos a agregar todos los tipos de usuario(En este caso Admin y Cajero)
gg. Baje los Button y tambin cambiar la propiedad del Text para mostrar y el Name
tambin, para los nombre del Button anteponer Btn y luego el nombre, por ejemplo
BtnIniciar.

PAG.

PAG. 21
gg. Insertar un PictureBox y agregar una imagen

hh. En la Parte de Arriba del Formulario vamos a colocar un Panel y le cambiamos la


propiedad del color, encima de ese Panel colocamos un Label que tendra el titulo
para el sistema.
ii. En la parte de abajo del Formulario, vamos a colocar un ProgressBar(Que nos mostrara
una pequea barra avance cuando el usuario este ingresando al sistema) y un Timer(el
cual vamos a programar para que nos muestre el avance del inicio de sesion.
jj. Luego empezamos a programar los botones, el primero que vamos a programar es el
boton Iniciar(Dar doble clic sobre el mismo para programar el evento cuando den clic
en el boton)

Public Class FrmInicio

Private Sub Btniniciar_Click(sender As Object, e As EventArgs) Handles Btniniciar.Click

End Sub
End Class

kk. No se olvide de colocar las Capas Datos y Lgica

Imports Logica
Imports Datos

Public Class FrmInicio

Private Sub Btniniciar_Click(sender As Object, e As EventArgs) Handles Btniniciar.Click

End Sub
End Class

PAG.

PAG. 22
ll. Dentro del formulario, vamos a utilizar instancias de esas Capas.

Imports Logica
Imports Datos

Public Class FrmInicio


Dim fu As New FUsuario
Dim eu As New Eusuario

Private Sub Btniniciar_Click(sender As Object, e As EventArgs) Handles Btniniciar.Click

End Sub
End Class

mm. Antes de programar el botn Iniciar vamos a agregar un MDIParent a la


capa Presentacin para que cuando ingresemos al Sistema, nos muestre el
MDIParent1, debido a que no tenemos todava El formulario principal de nuestro
sistema programado para eso dar clic sobre la Capa Presentacin, clic derecho,
Agregar/Nuevo Elemento/Formulario Primario MDI/Clic en Agregar
nn. Luego vamos al diseo del Formulario de Inicio de Sesin y dar doble clic sobre el
Timer y lo programamos su evento.

Imports Logica
Imports Datos

Public Class FrmInicio


Dim fu As New FUsuario
Dim eu As New Eusuario

Private Sub Btniniciar_Click(sender As Object, e As EventArgs) Handles Btniniciar.Click

End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick


ProgressBar1.Increment(10)
If ProgressBar1.Value = 100 Then
Timer1.Enabled = False
Me.Hide()
MsgBox("Bienvenido al Sistema " & Txtusuario.Text)
MDIParent1.Show()
End If

End Sub

End Class

PAG.

PAG. 23
oo. Vamos a hacer el procedimiento Limpiar(), que limpia los TextBox del Formulario, lo
haremos despus del evento del timer como muestra a continuacin

Imports Logica
Imports Datos

Public Class FrmInicio

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

End Sub

Public Sub Limpiar()

Txtusuario.Text = ""
Txtcontrasena.Text = ""
Cbotipousuario.Text = ""
End Sub

End Class

pp. Luego programaremos el evento del Clic sobre el botn Cancelar(En el diseo del
formulario, dar doble clic sobre el botn Cancelar:

Private Sub Btncancelar_Click(sender As Object, e As EventArgs) Handles Btncancelar.Click

Close()

End Sub

qq. Al final vamos a programar el boton iniciar con el siguiente cdigo:

PAG.
PAG. 24
rr. Luego irse a programar el boton iniciar con el siguiente cdigo:

Private Sub Btniniciar_Click(sender As Object, e As EventArgs) Handles Btniniciar.Click


Try
Static intento As Integer
If Txtusuario.Text <> "" And Txtcontrasena.Text <> "" And Cbotipousuario.Text <> "" Then
Dim dt As DataTable
eu._usuario = Txtusuario.Text
eu._contrasena = Txtcontrasena.Text
'eu._tipousuario = Cbotipousuario.SelectedItem
eu._tipousuario = Cbotipousuario.Text
dt = fu.validarUsuario(eu)
If dt.Rows.Count > 0 Then
Timer1.Start()
Dim tipo As String
tipo = dt.Rows(0)("tipousuario")
If tipo = "Cajero" Then
My.Forms.MDIParent1.EditMenu.Enabled = False
My.Forms.MDIParent1.ToolsMenu.Enabled = False
Else
My.Forms.MDIParent1.MenuStrip.Enabled = True
End If
Else
intento = intento + 1
MsgBox("Estimado usuario, los datos son incorrectos o no existen en la Base
de datos, te quedan " & (3 - intento) & " intentos ")
Limpiar()
If intento = 3 Then
MsgBox("El sistema se cerrara, gracias ", MsgBoxStyle.Critical, "Sistema ")
Me.Close()
End If
End If
Else
intento = intento + 1
MsgBox("Estimado usuario, te falta usuario o contrasea, te quedan " & (3 -
intento) & " intentos ")
Limpiar()
If intento = 3 Then
MsgBox("El sistema se cerrara, gracias ", MsgBoxStyle.Critical, "Sistema ")
Me.Close()
End If
End If
Catch ex As Exception
MsgBox(ex.Message)

End Try

End Sub

ss. Ya hemos programado nuestro inicio de Sesin para el


sistema, solo falta el botn Regstrate que lo haremos
ms adelante, que es solo llamar al formulario para
registrarse con el nombre del formulario.Show()

PAG. 25
Vamos a Adicionar las clases para poder hacer Las Altas (Insertar); bajas (Eliminacin)
y modificaciones de los usuarios para nuestro sistema:

13. En Visual, en la Capa Lgica, vamos agregar una nueva Clase


a. Clic derecho en la capa Lgica/Agregar/Clase
b. Colocar el nombre para la clase en este caso el nombre ser:
vregistrousuario(vamos a estandarizar que las clases de la capa
Logica, empiecen en la v y luego el nombre de la clase: ejemplo
la clase vregistrousuario)
c. Agregar
d. Una vez se agreg la clase, vamos a crear procedimientos para cada uno de los
campos de la tabla de nuestra base de datos que vamos a utilizar por ejemplo
El campo codigo_usuario tendr los procedimientos

Public Class vregistrousuario


Dim codigo As Integer
Dim nombre, apellidos, usuario,tipousuario, contrasena2, contrasena As String

Public Property _codigo


Get
Return codigo
End Get

Set(value)
codigo = value
End Set

End Property
End Class

PAG. 26
e.Y todos los campos de su tabla debe tener los mismos procedimientos:

Public Class vregistrousuario


Dim codigo As Integer
Dim nombre, apellidos, usuario, tipousuario, contrasena2, contrasena As String
Public Property _codigo
Public Property _codigo
Get
Return codigo
End Get
Set(value)
codigo = value
End Set
End Property
Public Property _nombre
Get
Return nombre
End Get
Set(value)
nombre = value
End Set
End Property
Public Property _apellidos
Get
Return apellidos
End Get
Set(value)
apellidos = value
End Set
End Property
Public Property _usuario
Get
Return usuario
End Get
Set(value)
usuario = value
End Set
End Property
Public Property _tipousuario
Get
Return tipousuario
End Get
Set(value)
tipousuario = value
End Set
End Property
Public Property _contrasena
Get
Return contrasena
End Get
Set(value)
contrasena = value
End Set
End Property
Public Property _contrasena2
Get
Return contrasena2
End Get
Set(value)
contrasena2 = value
End Set
End Property
End Class

PAG. 27
f. Una vez coloc los procedimientos de los mtodos de los getter y setter de cada
campo de la tabla, al final de los mtodos Get y Set(Getter y Seeter), despus debe
hacer los constructores de todos los mtodos con los datos de la tabla.

Public Class vregistrousuario


Dim codigo As Integer
Dim nombre, apellidos, usuario, contrasena2, contrasena As String
Public Property _codigo
.
End Property
.
.
Public Property _contrasena2
.
End Property

Public Sub New(ByVal codigo As Integer, ByVal nombre As String, ByVal apellidos As String,
ByVal usuario As String, ByVal tipousuario As String, ByVal contrasena As String, ByVal
contrasena2 As String)
_codigo = codigo
_nombre = nombre
_apellidos = apellidos
_usuario = usuario
_tipousuario=tipousuario
usuario =_contrasena
usuario = contrasena
_contrasena2 = contrasena2
End Sub

Public Sub New()

End Sub
End Class
Guarde todos los cambios.
14. Vamos a agregar en la Capa Datos, una nueva Clase
a. Clic derecho en la capa Datos/Agregar/Clase
b. Colocar el nombre para la clase en este caso el nombre ser: Fregistrousuario(Para
las clases de la capa datos, vamos a estandarizar la F delante del
nombre de la clase: ejemplo: : Fregistrousuario
c. Agregar
d. Una vez se agreg la clase, dentro de la clase se coloca Inherits conexin (Para
indicar que vamos a utilizar la clase conexin) colocamos como a continuacin:
Public Class Fregistrousuario
Inherits conexion

End Class

e. Adems vamos a utilizar la Librera de: System.Data.SqlClient, y las Capas:


Logica y Datos para eso las colocamos como a continuacin:
Imports System.Data.SqlClient
Imports Logica
Imports datos
Public Class Fregistrousuario
Inherits conexion
End Class

PAG. 28
f. En esta clase vamos a colocar todas las funciones que vamos a utilizar con el registro
de usuarios y vamos a empezar con la Funcin Insertar()
Imports System.Data.SqlClient
Imports Logica
Imports Datos
Public Class Fregistrousuario
Inherits conexion
Public Function insertar(ByVal dt As vregistrousuario) As Boolean
Try
conectado()
comand = New SqlCommand("insertar_usuario")
comand.CommandType = CommandType.StoredProcedure
comand.Connection = conex
comand.Parameters.AddWithValue("@Codigo_Usuario", dt._codigo)
comand.Parameters.AddWithValue("@nombre", dt._nombre)
comand.Parameters.AddWithValue("@apellidos", dt._apellidos)
comand.Parameters.AddWithValue("@usuario", dt._usuario)
comand.Parameters.AddWithValue("@tipousuario", dt._tipousuario)
comand.Parameters.AddWithValue("@contrasena", dt._contrasena)
comand.Parameters.AddWithValue("@contrasena2", dt._contrasena2)
If comand.ExecuteNonQuery Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
desconectado()
End Try
End Function
End Class

g. Guarde todos los cambios.


h. Se debe tomar en cuenta que se estn utilizando Procedimientos Almacenados en
la Base de datos, en esta clase estamos utilizando el procedimiento:
insertar_usuario , para que se pueda adicionar en la BD a los usuarios
i. El script del procedimiento almacenado insertar_usuario , est lneas abajo y para
crearlo y guardarlo, se debe abrir SQL SERVER y seleccionar la Base de datos del
Sistema, luego abrir una ventana para consultas para hacer el Procedimiento
Almacenado y en la ventana de consulta escriba lo siguiente:

create procedure insertar_usuario


@Codigo_Usuario int,
@nombre varchar(50),
@apellidos varchar(50),
@usuario varchar(50),
@tipousuario varchar(50),
@contrasena varchar(50),
@contrasena2 varchar(50) as
insert into Registro_Usuario VALUES (@Codigo_Usuario,@nombre ,@apellidos,@usuario ,@tipousuario,@contrasena,@contrasena2)

go

PAG. 29
j. Debe tener en cuenta el nombre correcto de los campos de su tabla en la base de
datos
k. Luego de haber escrito el procedimiento, ejecute la consulta para poder crear el
procedimiento almacenado que utilizara en la clase: Fregistrousuario
15. Vamos a agregar un nuevo Formulario en la Capa Presentacion(Presentacion)
a. Clic derecho en la capa Presentacin/Agregar/Windows Forms
b. Colocar el nombre para el formulario en este caso el nombre ser: FrmRegistro,
para estandarizar los nombres de los archivos que hay en la capa Presentacion, debe
de anteponer Frm y luego el nombre, por ejemplo: FrmRegistro
c. Agregar
d. Una vez se agreg el formulario, vamos a disear el formulario para el Registro de
usuario que tendr la siguiente presentacin inicial:

e. Inicialmente solo vamos a disear la parte de la izquierda que tiene los datos para el
registro de usuario
i. Coloque un GroupBox y cmbiele el texto que vera el usuario en la propiedad
de Text coloque: Datos Registro Usuario y su Name: grpRegistroUsuario
ii. Luego coloque Label y TextBox para campo de la tabla, por ejemplo para el
campo Codigo el label le debe cambiar la propiedad Name por Lbcodigo y el
TextBox cambiar la propiedad Name por TxtCodigo (debe hacer lo mismo
para cada campo de la tabla de su Base de datos, el label y el TextBox debe
tener el mismo nombre del campo de la tabla anteponiendo lb si es Label y
Txt si es TextBox, ejemplo : Lbcodigo y TxtCodigo
iii. Baje los Button y tambien cambiar la propiedad del Text para mostrar y el
Name tambien, para los nombre del Button anteponer Btn y luego el
nombre, por ejemplo BtnNuevo.
iv. Baje un ComboBox para colocar el tipo de usuario, las propiedades que debe
cambiar son: Name: cbotipousuario, en Items vamos a agregar todos los
tipos de usuario(En este caso Admin y Cajero)

PAG.
PAG. 30
iv. Una vez diseado el Formulario Debe de colocar las Capas que va a utilizar en el
formulario, en este caso la capa Datos y la Capa Logica(Logica), para eso dar
doble clic en el formulario en algn lugar donde no hayan objetos y luego escribir
el nombre de las capas anteponiendo la palabra Imports y adems debajo de la
Class FrmRegistro, colocar variables que utilizaremos en esta clase como
muestra a continuacin:

Imports Datos
Imports Logica

Public Class FrmRegistro


Private dtb As New DataTable
Dim dt As New vregistrousuario
Dim fu As New Fregistrousuario

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

End Sub

End Class

Vamos a programar el procedimiento Limpiar().

En este procedimiento se quiere limpiar los datos del nuevo usuario que se colocaron en el
formulario, por eso se deben limpiar todas herramientas que tienen los datos del nuevo
usuario, para eso escribir el siguiente cdigo:

Imports Datos
Imports Logica

Public Class FrmRegistro

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

End Sub

Public Sub Limpiar()


BtnGuardar.Visible = True
Btneditar.Visible = False
TxtCodigo.Text = ""
TxtNombre.Text = ""
TxtApellido.Text = ""
Txtusuario.Text = ""
cbotipousuario.Text = ""
Txtcontrasena.Text = ""
Txtcontrasena2.Text = ""
End Sub

End Class

Para programar algn botn, dar doble clic sobre el botn:

PAG. 31
1. Boton Nuevo (Vamos a llamar al procedimiento limpiar(). En este botn
(Nuevo) se quiere limpiar los datos.
Imports Datos
Imports Logica

Public Class FrmRegistro

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

End Sub
Public Sub Limpiar()
.
.
End Sub

Private Sub BtnNuevo_Click(sender As Object, e As EventArgs) Handles BtnNuevo.Click

Me.Limpiar()
End Sub

End Class

2. Boton Cancelar

Imports Datos
Imports Logica

Public Class FrmRegistro

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


End Sub
Public Sub Limpiar()
.
.
End Sub

Private Sub BtnNuevo_Click(sender As Object, e As EventArgs) Handles BtnNuevo.Click


Me.Limpiar
End Sub

Private Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click

Close()

End Sub

End Class

PAG. 32
3. Botn Guardar

Imports Datos
Imports Logica

Public Class FrmRegistro

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

End Sub
Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click

If TxtCodigo.Text <> "" And TxtNombre.Text <> "" And TxtApellido.Text <> "" And
Txtusuario.Text <> "" And cbotipousuario.Text <> "" And Txtcontrasena.Text <> "" And
Txtcontrasena2.Text <> "" Then
If Txtcontrasena.Text = Txtcontrasena2.Text Then
Try
Dim dt As New vregistrousuario
Dim fu As New Fregistrousuario
dt._codigo = TxtCodigo.Text
dt._nombre = TxtNombre.Text
dt._apellidos = TxtApellido.Text
dt._usuario = Txtusuario.Text
dt._tipousuario = cbotipousuario.Text
dt._contrasena = Txtcontrasena.Text
dt._contrasena2 = Txtcontrasena2.Text
If fu.insertar(dt) Then
MessageBox.Show("Usuario registrado correctamente", "guardando
registros ", MessageBoxButtons.OK, MessageBoxIcon.Information)
' Mostrar()
Limpiar()
Else
MessageBox.Show("Usuario NO registrado ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Error)
' Mostrar()
Limpiar()
End If
Catch ex As Exception
MsgBox(ex.Message)

End Try
Else
MessageBox.Show("Las contraseas no coinciden ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Falta ingresar datos ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

End Sub
End Class

PAG. 33
Vamos a continuar diseando el formulario de Registro en la parte derecha, como
muestra en la imagen, siga los pasos de lneas abajo:

Vamos a colocar un GroupBox que va a ayudar a mostrar los datos de los usuarios
Registrados, a este GroupBox se le va a cambiar la propiedad Text: Listado de Usuarios.

1. Dentro del GroupBox adicionar un DataGridView y deshabilite las opciones como le


muestra a continuacin:

PAG. 34
PAG. 34
2. En el DataGridView, cambiar la propiedad: SelectionMode: FullRowSelect, para
poder seleccionar las filas y en el Name:datalistado, ademas vamos a agregar
una nueva columna en la propiedad Columns:

Esta columna nos va a permitir seleccionar el campo que vamos a eliminar, dar clic
en eliminar y seleccionar la opcin de cambiar el nombre y el texto del encabezado
y clic en agregar, luego llenar los datos que muestra a continuacin:

Luego clic en cerrar a todo y vuelva al Formulario

PAG. 35

PAG. 35
3. Agregar un ComboBox y en la propiedad del Name:cbocampo y en Items vamos a
agregar todos los campos de la base de datos para realizar bsquedas
4. Agregar un TextBox y en la propiedad del Name:txtbuscar
5. Agregar un Label y en la propiedad del Name:Lbinexistente y en el Text: Datos
inexistentes (este Label solo aparecer cuando el datalistado este en blanco)
6. Agregar dos Button, uno para Eliminar y en la propiedad del Name:Btneliminar y en
el Text: Eliminar y otro para Mostrar propiedad del Name:Btnmostrar y en el Text:
Mostrar
Con todos estos objetos vamos a crear el procedimiento mostrar en el formulario
FrmRegistro (Doble clic en el botn Mostrar para programar su evento)

Imports Datos
Imports Logica
Public Class FrmRegistro
Private dtb As New DataTable
Private Sub FrmRegistro_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub
Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
.
.
End Sub

Private Sub BtnMostrar_Click(sender As Object, e As EventArgs) Handles BtnMostrar.Click

End Sub

End Class

Antes de programar el evento del botn mostrar, vamos a adicionar en la clase


Fregistrousuario el procedimiento para ayudar a mostrar los datos
1. Clic en la Class Fregistrousuario para codificar el procedimiento mostrar(), que
permitir mostrar los usuarios que hay en el sistema.
2. Antes de hacer el cdigo para el procedimiento mostrar() vamos a
crear en la Base de datos el procedimiento almacenado para
mostrar_usuario y el script es:

create procedure mostrar_usuario as

select *

from Registro_Usuario order by codigo_usuario asc


go

3. Guarde el procedimiento almacenado y luego ir a Visual para hacer las


funciones y procedimientos para que el evento del boton mostrar() funcione.

PAG.

PAG. 36
4. Para que funcione el Boton Mostrar necesitamos trabajar en la Class
Fregistrousuario de la Capa Datos y tambin en el Formulario FrmRegistro
de la Capa Presentacin.
5. Primero vamos a trabajar en la Capa Datos, Clic en la Class Fregistrousuario
y crear la Funcin mostrar() y colocar el siguiente cdigo:
Public Function mostrar() As DataTable
Try
conectado()
comand = New SqlCommand("mostrar_usuario")
comand.CommandType =
CommandType.StoredProcedure
comand.Connection = conex
If comand.ExecuteNonQuery Then
Using dts As New DataTable
Using da As New
SqlDataAdapter(comand)
da.Fill(dts)
Return dts
End Using
End Using
Else
Return Nothing
End If
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
desconectado()
End Try
End Function

5. Guardamos todos los cambios y volvemos al formulario FrmRegistro de


la Capa Presentacion para poder hacer nuestro procedimiento para el evento
del botn mostrar pero primero crearemos el procedimiento: mostrar(),
buscar() y ocultar_columnas(), con el cdigo siguiente:

PAG. 37
6. Codifiquemos el procedimiento para ocultar_columnas()

Imports Datos
Imports Logica

Public Class FrmRegistro Private dtb As New DataTable

Private Sub FrmRegistro_Load(sender As Object, e As EventArgs) Handles


MyBase.Load
End Sub
Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles
BtnGuardar.Click
.
.
End Sub

Private Sub ocultar_columnas()

DataListado.Columns(1).Visible = False

End Sub

Private Sub BtnMostrar_Click(sender As Object, e As EventArgs) Handles


BtnMostrar.Click

End Sub
End Class

7. Coloque el procedimiento buscar() debajo del procedimiento ocultar_columnas()

Codifique lo siguiente:

PAG. 38
Private Sub ocultar_columnas()
DataListado.Columns(1).Visible = False
End Sub

Private Sub buscar()


mostrar()
Try
Dim ds As New DataSet
ds.Tables.Add(dtb.Copy)
Dim dv As New DataView(ds.Tables(0))

If Cbocampo.Text = "Codigo_Usuario" Then


dv.RowFilter = Cbocampo.Text & "=" & TxtBuscar.Text
If dv.Count <> 0 Then
LbInexistente.Visible = False
DataListado.DataSource = dv

ocultar_columnas()
Else
LbInexistente.Visible = True
DataListado.DataSource = Nothing
End If

Else
dv.RowFilter = Cbocampo.Text & " like '" & TxtBuscar.Text & "%'"

If dv.Count <> 0 Then


LbInexistente.Visible = False
DataListado.DataSource = dv

ocultar_columnas()
Else
LbInexistente.Visible = True
DataListado.DataSource = Nothing
End If
End If

Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

PAG. 39
8. Abajo del procedimiento buscar(), Coloque el procedimiento mostrar()

Private Sub mostrar()

Try
Dim fun As New Fregistrousuario
dtb = fun.mostrar
DataListado.Columns.Item("Eliminar").Visible = False
If dtb.Rows.Count <> 0 Then
DataListado.DataSource = dtb
TxtBuscar.Enabled = True
DataListado.ColumnHeadersVisible = True
LbInexistente.Visible = False
Else
DataListado.DataSource = Nothing
TxtBuscar.Enabled = False
DataListado.ColumnHeadersVisible = False
LbInexistente.Visible = True

End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
BtnNuevo.Visible = True
Btneditar.Visible = False
End Sub
.

PAG. 40
7. Guarde todos los cambios y luego vaya al Diseo del Formulario y dar doble
clic sobre el boton Mostrar para codificar el evento, en el cual solo vamos a
llamar al procedimiento mostrar() como muestra a continuacin:

Private Sub BtnMostrar_Click(sender As Object, e As EventArgs) Handles BtnMostrar.Click

mostrar()

End Sub

8. Botn Buscar del Formulario


Dar doble clic en el botn buscar y llamar al procedimiento Buscar()
Private Sub Btnbuscar_Click(sender As Object, e As EventArgs) Handles Btnbuscar.Click

buscar()

End Sub

9. Boton Editar del Formulario


1. Para trabajar con el botn Editar vamos a crear en la base de datos el
procedimiento almacenado

create procedure editar_usuario


@Codigo_Usuario int,
@nombre varchar(50),
@apellidos varchar(50),
@usuario varchar(50),
@tipousuario varchar(50),
@contrasena varchar(50),
@contrasena2 varchar(50)
as
update Registro_Usuario set
nombre=@nombre,apellidos=@apellidos,usuario=@usuario,tipousuario=@tipousuario,contrasena=@contrasena,
contrasena2=@contrasena2
where Codigo_Usuario=@Codigo_Usuario

9. Guarde el procedimiento almacenado y luego vuelva a Visual


10. En Visual vamos a trabajar en el DataGridView para seleccionar el registro que
vamos a editar, para eso irse al Formulario y dar doble clic en el
DataGridView(DataListado) y por defecto le sale el evento CellContentClick del
DataGridView, dar clic sobre el evento y luego seleccionar la propiedad en el evento
CellClic y colocar el siguiente codigo:
Private Sub DataListado_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles
DataListado.CellContentClick

End Sub

PAG. 41
11. Una vez el cursor se encuentra dentro del evento CellContentClick del datalistado, ir a la
barra para cambiar el evento que vamos a trabajar comoo muestra acontinuacion

12. Dar clic sobre el evento y luego seleccionar la propiedad en el evento CellClick y
colocar el siguiente codigo:

Private Sub DataListado_CellClick(sender As Object, e As DataGridViewCellEventArgs)


Handles DataListado.CellClick

TxtCodigo.Text = DataListado.SelectedCells.Item(1).Value
TxtNombre.Text = DataListado.SelectedCells.Item(2).Value
TxtApellido.Text = DataListado.SelectedCells.Item(3).Value
Txtusuario.Text = DataListado.SelectedCells.Item(4).Value
cbotipousuario.Text = DataListado.SelectedCells.Item(5).Value
Txtcontrasena.Text = DataListado.SelectedCells.Item(6).Value
Txtcontrasena2.Text = DataListado.SelectedCells.Item(7).Value
Btneditar.Visible = True
BtnGuardar.Visible = False

End Sub

PAG. 42
13. Luego vamos a trabajar en la Capa Datos, Class Fregistrousuario y
vamos a crear la Funcion Editar, colocamos como a continuacin:

Imports System.Data.SqlClient
Imports Logica
Imports Datos
Public Class Fregistrousuario
Inherits conexion
Public Function editar(ByVal dt As vregistrousuario) As Boolean
Try
conectado()
comand = New SqlCommand("editar_usuario")
comand.CommandType = CommandType.StoredProcedure
comand.Connection = conex
comand.Parameters.AddWithValue("@Codigo_Usuario", dt._codigo)
comand.Parameters.AddWithValue("@nombre", dt._nombre)
comand.Parameters.AddWithValue("@apellidos", dt._apellidos)
comand.Parameters.AddWithValue("@usuario", dt._usuario)
comand.Parameters.AddWithValue("@tipousuario", dt._tipousuario)

comand.Parameters.AddWithValue("@contrasena", dt._contrasena)

comand.Parameters.AddWithValue("@contrasena2", dt._contrasena2)

If comand.ExecuteNonQuery Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
Finally
desconectado()
End Try
End Function

End Class

14. Guarde los cambios y luego ir al Formulario y vamos a trabajar sobre el Boton Editar

PAG. 43
15. En el Boton Editar, doble clic sobre el boton para empezar a codificar los siguiente

Private Sub Btneditar_Click(sender As Object, e As EventArgs) Handles Btneditar.Click

Dim result As DialogResult


result = MessageBox.Show("Realmente quiere editar los registros del usuario", "Modificando
registros", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If result = DialogResult.OK Then
If TxtCodigo.Text <> "" And TxtNombre.Text <> "" And TxtApellido.Text <> "" And
Txtusuario.Text <> "" And Txtusuario.Text <> "" And Txtcontrasena.Text <> "" And
Txtcontrasena2.Text <> "" Then

Try
Dim dt As New vregistrousuario Dim
fu As New Fregistrousuario
dt._codigo = TxtCodigo.Text
dt._nombre = TxtNombre.Text
dt._apellido = TxtApellido.Text
dt._usuario = Txtusuario.Text
dt._tipousuario = cbotipousuario.Text
dt._contrasena = Txtcontrasena.Text
dt._contrasena2 = Txtcontrasena2.Text
If fu.editar(dt) Then
MessageBox.Show("Usuario modificado correctamente", "guardando registros
", MessageBoxButtons.OK, MessageBoxIcon.Information)
mostrar()
Limpiar()
Else
MessageBox.Show("Usuario NO modificado ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Error)
mostrar()
Limpiar()
End If
Catch ex As Exception
MsgBox(ex.Message)

End Try
End If

Else
MessageBox.Show("No se modifica datos ", " intente nuevamente ", MessageBoxButtons.OK,
MessageBoxIcon.Information)

End If

End Sub

Antes de crear todo lo que corresponde al boton eliminar vamos a modificar la tabla Registro_Usuario

PAG. 44
En SQL vamos a seguir los siguientes pasos

1. Insertar un campo en la tabla Registro_Usuario, el campo sera


estado, el cual va a ayudarnos para colocar un usuario como
activo o inactico.

ALTER TABLE Registro_Usuario ADD ESTADO int ;

2. Por defecto el nuevo campo insertado se inserta con valores


NULL,asi que vamos a modificar ese nuevo valor, le vamos a
colocar ESTADO = 1, a todos los registros que existen para
ponerlos activos a todos.

UPDATE Registro_Usuario
SET ESTADO = 1
WHERE ESTADO IS NULL

PAG. 45
16. Boton Eliminar del Formulario
1. Para trabajar con el boton Eliminar vamos a crear en la base de datos el
procedimiento almacenado eliminar_usuario

create procedure eliminar_usuario


@Codigo_Usuario int
as
UPDATE Registro_Usuario SET ESTADO = 0 WHERE Codigo_Usuario=@Codigo_Usuario

go

2. Guarde el procedimiento almacenado y luego vuelva a Visual


3. En Visual, vamos a trabajar en la Class Fregistrousuario y vamos a
crear la Funcion eliminar al final de la clase, colocamos como a
continuacin:
Public Function eliminar(ByVal dt As vregistrousuario) As Boolean
Try
conectado()
comand = New SqlCommand("eliminar_usuario")
comand.CommandType = CommandType.StoredProcedure
comand.Connection = conex
comand.Parameters.Add("@Codigo_Usuario", SqlDbType.NVarChar, 50).Value = dt._codigo

If comand.ExecuteNonQuery Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox(ex.Message)
Return False
Finally
desconectado()
End Try

End Function

4. Guarde los cambios y luego vamos a trabajar sobre el Btneliminar, para eso
debe irse al Formulario FrmRegistro y dar doble clic en el Btneliminar y
luego vamos a trabajar sobre el evento del clic de ese Boton, para eso
colocar el siguiente codigo:

PAG. 44

PAG. 46
Dim result As DialogResult
result = MessageBox.Show("Realmente quiere eliminar el usuario", "Eliminando usuario",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If result = DialogResult.OK Then
Try
Dim dt As New vregistrousuario
Dim fu As New Fregistrousuario
5. En el Boton Btneliminar vamos a trabajar, dar doble clic de ese
dt._codigo = Txtcodigo.Text
Botn, para eso colocar el siguiente cdigo:
If fu.eliminar(dt) Then
MessageBox.Show("Usuario modificado correctamente", "guardando registros ",
MessageBoxButtons.OK, MessageBoxIcon.Information)
mostrar()

Else
MessageBox.Show("El Usuario NO se elimino ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Information)
mostrar()

End If
Catch ex As Exception
MsgBox(ex.Message)

End Try
Else
MessageBox.Show("Cancelando eliminacion de registro ", " intente nuevamente ",
MessageBoxButtons.OK, MessageBoxIcon.Information)
mostrar()

End If
Limpiar()

End Sub

PAG. 47
PAG. 48

Das könnte Ihnen auch gefallen