You are on page 1of 16

Manual Visual Basic .

NET SQL Server


Paso a Paso
Ratings: (4)|Views: 134,855|Likes: 609
Published by Armando Tacza
See more
Mtodo paso a paso
Visual Basic .Net
SQL Server
- Desarrollando un Mini Sistema
Armando Tacza R..
atacza@gmail.com
http://www.facebook.com/atacza http://twitter.com/atak
Edicin: 2009
Taller Programacin Visual Basic.NET paso a paso
2009

Curso Taller Programacin Visual Basic .NET Paso a Paso
1. Introduccin
2.
Herramientas Necesarias
3. Anlisis Bsico del Sistema
4. Base de Datos SQL Server 2005 XE
5. Tablas
6. Procedimientos Almacenados
7. Conexin Visual Basic.NET con SQL Server 2005 XE
8. Interfaz del usuario Windows Forms con Visual Basic .NET 9. Formulario de Inicio de
Sesin (usuario & Password) 10. Formulario Principal 11. Formulario de Mantenimiento de
Datos
12. Reportes Crystal Report
13. Pruebas de Funcionalidad
http://systemtak.blogspot.com
[ 2 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Introduccin
A todos mis amigos que se inician en el fabuloso mundo del Desarrollo - de la
Programacin de Aplicaciones como quieran decirlo; que me imagino tienen muchas dudas
cuando inician un proyecto real, en esta oportunidad quiero plasmar de manera detallada la
secuencia, pasos que nos llevan a obtener un sistema Cliente / Servidor; sysAgenda.
Nuestro sistema registrar a Contactos de Diferentes Carreras Profesionales, Pases; los
cuales los tendremos registrados ante una necesidad de obtener sus datos, para hacerlo
sencillo y ser comprensible trabajaremos con 3 tablas en la Base de Datos y una tabla de
registro de Usuarios. Espero que nos permita interactuar y sea este taller de su total
satisfaccin.
Atentamente,
Armando Tacza
Profesional IT SystemTak Noviembre - 2009
http://systemtak.blogspot.com
[ 3 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009
Herramientas Necesarias
Microsoft Visual Studio 2008 Microsoft SQL Server 2005 Express Edition Microsoft
Server Management Studio Express
Anlisis Bsico del Sistema
sysAgenda ser analizada bsicamente como si Ud. guardara un Contacto que tiene en su
telfono mvil; con la finalidad de hacer un modelo Entidad Relacin y trabajar con ms de
una tabla es que incrementamos los detalles de Profesin y Pas.
Base de Datos SQL Server 2005 XE
Ejecutamos el MS SQL Server Management Studio:
La primera vez que iniciamos nos mostrar lo siguiente:
Click en el botn Conectar:
Asignaremos un Password al usuario sa Con el fin de conectarnos a travs de ste usuario.
Click Botn derecho >> Propiedades Asignar la Contrasea. Al lado izquierdo click en
Estado y Habilitar inicio de sesin. Click en Aceptar.
http://systemtak.blogspot.com
[ 4 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

-
Luego de Aceptar Desconectamos Nuestro SQL Server.
Iniciaremos nuevamente SQL Server 2005 con el usuario sa y Password.
-
Si nos muestra un error cuando intentamos Ingresar.
-
Debemos ingresar nuevamente con Autentificacion Windows y hacer lo siguiente: Click
derecho sobre el Server >> Propiedades :
http://systemtak.blogspot.com
[ 5 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Click en Seguridad >> Seleccionar Modo de autentificacion de Windows y SQL Server
Reiniciamos el Servicio de SQL Server ( Click >> Inicio>> Programas >> MS SQL
Server >> Configuration tools >> SQL Server
Configuration Manager )
-
Ahora si nuevamente nos loguearemos con el usuario sa y el password (inicio este es mi
PASS)
http://systemtak.blogspot.com
[ 6 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Ahora crearemos la Base de Datos: Click Derecho: Nueva Base de Datos Nombre:
sysAgenda
Luego Cick en Aceptar
Tablas:
tb_profesion
Ingresar los campos , seleccionar CodigoProfesion Click en la LLAVE Primary Key,
propiedades (identidad) : SI Guardar nombre : tb_profesion
tb_pais
http://systemtak.blogspot.com
[ 7 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009
tb_contacto:
tb_usuario:
Relacionando las Tablas:
Click en >> Diagramas de Base de datos
Luego de dar un Click a YES; crearemos el Modelo de la Base de Datos.
http://systemtak.blogspot.com
[ 8 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Agregar todas las Tablas:
Diagrama de la Base de Datos
De un determinado Pais tenemos Muchos Contactos (Relacin de 1 a muchos) De una
determinada Profesion tenemos Muchos Contactos (Relacin de 1 a muchos)
Procedimientos Almacenados

(Porciones de Cdigo Reutilizable en el Servidor se programan a travs del lenguaje
Transact - SQL)
http://systemtak.blogspot.com
[ 9 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Borrar el cdigo generado por la plantilla, enfocaremos Nuestro Procedimiento
Almacenado a cuestiones muy bsicas con fines didcticos. sp_tbPaisListar (Procedimiento
que la usaremos para rellenar un lista de Pases) >> En SQL Server Ejecutar con F5
(ejecuta la consulta)
create procedure sp_tbPaisListar as begin set nocount on; select * from tb_pais order by
NombrePais end go
Nota: Haremos un ingreso manual de valores para la tabla tb_pais (Mexico, Ecuador, Chile,
Peru) sp_tbProfesionListar (Procedimiento que la usaremos para rellenar un lista de
Profesiones) create procedure sp_tbProfesionListar as begin set nocount on; select * from
tb_profesion order by NombreProfesion end go Nota: Haremos un ingreso manual de
valores para la tabla tb_profesion (Medicina, Ingeniera, Administracin, Economa)
sp_tbUsuarioListar (Procedimiento que la usaremos para rellenar un lista de Usuarios)
create procedure sp_tbProfesionListar as begin set nocount on; select * from tb_profesion
order by NombreProfesion end go Nota: Haremos un ingreso manual de valores para la
tabla tb_usuario. Nick Admin Invitado password guest Password Administrador del
Sistema Invitado a Usar el Sistema Nombres
http://systemtak.blogspot.com
[ 10 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Los Procedimientos Almacenados para el Mantenimiento de la tabla tb_contacto a
continuacin. sp_tbContactoInsertar (Procedimiento para insertar un nuevo Contacto)
create procedure [dbo].[sp_tbContactoInsertar] @nombreContacto varchar(45),
@direccionContacto varchar(45), @telefonoContacto varchar(12), @celularContacto
varchar(12), @emailContacto varchar(20), @fechaRegistro smallDateTime,
@fotoContacto varbinary(MAX), @codigoProfesion int, @codigoPais int, @nick
varchar(15), @codigo int output as set @codigo=(select top 1 CodigoContacto from
tb_contacto order by CodigoContacto desc)+1 begin set nocount on; insert into
tb_contacto(NombreContacto,DireccionContacto,TelefonoContacto,CelularContacto,Email
Contacto,FechaRegistro,FotoContacto,CodigoProfesion,CodigoPais,nick)
values(@nombreContacto,@direccionContacto,@telefonoContacto,@celularContacto,@e
mail Contacto,@fechaRegistro,@fotoContacto,@codigoProfesion,@codigoPais,@nick)
end sp_tbContactoModificar (Procedimiento para modificar un Contacto) CREATE
procedure [dbo].[sp_tbContactoModificar] @codigoContacto int, @nombreContacto
varchar(45), @direccionContacto varchar(45), @telefonoContacto varchar(12),
@celularContacto varchar(12), @emailContacto varchar(20), @fechaRegistro
smallDateTime, @fotoContacto varbinary(MAX), @codigoProfesion int, @codigoPais int,
@nick varchar(15) as begin set nocount on; update tb_contacto set
NombreContacto=@nombreContacto,DireccionContacto=@direccionContacto,TelefonoCo
ntact
o=@telefonoContacto,CelularContacto=@celularContacto,EmailContacto=@emailContact
o,F
echaRegistro=@fechaRegistro,FotoContacto=@fotoContacto,CodigoProfesion=@codigoPr
ofe sion,CodigoPais=@codigoPais,nick=@nick
where(CodigoContacto=@codigoContacto) end sp_tbContactoEliminar (Procedimiento
para Elimina un Contacto) CREATE procedure [dbo].[sp_tbContactoEliminar]
@codigoContacto int as begin set nocount on; delete from tb_contacto
where(CodigoContacto=@CodigoContacto) http://systemtak.blogspot.com
[ 11 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

end
sp_tbContactoListar (Procedimiento para Listar Contactos) create procedure
sp_tbContactoListar as begin set nocount on; select tb_contacto.CodigoContacto,
tb_contacto.NombreContacto,tb_contacto.DireccionContacto,
tb_contacto.TelefonoContacto,tb_contacto.CelularContacto, tb_contacto.EmailContacto,
tb_contacto.FechaRegistro,tb_contacto.FotoContacto,
tb_pais.NombrePais,tb_profesion.NombreProfesion,tb_contacto.nick from
tb_contacto,tb_pais,tb_profesion
where(tb_contacto.CodigoProfesion=tb_profesion.CodigoProfesion and
tb_contacto.CodigoPais=tb_pais.CodigoPais) end sp_tbContactoListarPorPais
(Procedimiento para Listar Contactos por Paises) create procedure
sp_tbContactoListarPorPais @CodigoPais int as begin set nocount on; select
tb_contacto.CodigoContacto, tb_contacto.NombreContacto,tb_contacto.DireccionContacto,
tb_contacto.TelefonoContacto,tb_contacto.CelularContacto, tb_contacto.EmailContacto,
tb_contacto.FechaRegistro,tb_contacto.FotoContacto,
tb_pais.NombrePais,tb_profesion.NombreProfesion,tb_contacto.nick from
tb_contacto,tb_pais,tb_profesion
where(tb_contacto.CodigoProfesion=tb_profesion.CodigoProfesion and
tb_contacto.CodigoPais=tb_pais.CodigoPais and tb_contacto.CodigoPais=@CodigoPais)
order by tb_pais.NombrePais end sp_tbContactoListarPorProfesion (Procedimiento para
Listar Contactos por Profesion) create procedure sp_tbContactoListarPorProfesion
@CodigoProfesion int as begin set nocount on; select tb_contacto.CodigoContacto,
tb_contacto.NombreContacto,tb_contacto.DireccionContacto,
tb_contacto.TelefonoContacto,tb_contacto.CelularContacto, tb_contacto.EmailContacto,
tb_contacto.FechaRegistro,tb_contacto.FotoContacto,
tb_pais.NombrePais,tb_profesion.NombreProfesion,tb_contacto.nick from
tb_contacto,tb_pais,tb_profesion
where(tb_contacto.CodigoProfesion=tb_profesion.CodigoProfesion and
tb_contacto.CodigoPais=tb_pais.CodigoPais and
tb_contacto.CodigoProfesion=@CodigoProfesion) order by
tb_profesion.NombreProfesion,tb_contacto.NombreContacto end Hasta este punto
trabajamos en el Servidor, seguidamente veremos la aplicacin
http://systemtak.blogspot.com
[ 12 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Desarrollando la Aplicacin en Visual Basic.NET 2008
Iniciamos >> Visual Studio 2008
Click File >> New Project
Asignarle nombre >> ok. (Crear una carpeta en C:\) sysAgenda
Click >> Save All >> Guardar el Proyecto
Guardar el Proyecto >> c:\sysAgenda
Ahora Iniciaremos la Conexin VB.NET SQL Server 2005 XE Click >> Menu Data >>
Show Data Sources Click >> Add New DataSource
http://systemtak.blogspot.com
[ 13 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Click >> Next
Click >> Botn Nueva Conexin Seleccionamos SQL Server
El Server name lo obtenemos desde nuestro SQL Server. (sistemas02\SQLEXPRESS)
Click en Next
http://systemtak.blogspot.com
[ 14 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Ingresamos el nombre de la cadena de Conexin (cnnSysAgenda) Click >> Next
Finalmente Click >> Finish
Interfaz del Usuario con VB.NET
Considerando que hasta aqu todo va muy bien, iniciaremos con la interfaz del usuario,
diseos de los formularios centrndonos bsicamente en la tabla (tb_contacto).
Diseo del Formulario: Acceso al Sistema (Usuario & Password)
Form1 Name Text StartPosition ControlBox FormBorderStyle GroupBox1 Text Label1
Text Labe2 Text ComboBox1 Name DropDownStyle TextBox1 Name PasswordChar
Button1 Name Text Button2 Name Text btnCancelar &Cancelar btnIngresar &Ingresar
txtPassword * Cbousuario DropDownList Password Usuario: frmInicio Acceso
CenterScreen False FixedSingle
http://systemtak.blogspot.com
[ 15 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Diseo del Formulario: Formulario Principal
Click >> Menu Project >> Add Windows Form (Nombre: frmPrincipal.vb)
Propiedades para el formulario
frmPrincipal Name Text WindowState IsMDIContainer MaximizeBox MenuStrip Name
mnuInicio mnuContacto mnuSalir StatusTrip1 ToolStripStatusLabel Text Tsslusuario
Usuario mnuPrincipal SubMenu SubMenu SubMenu frmPrincipal Sistema Agenda
Maximized True False
Diseo del Formulario: Formulario de Contactos
Click >> Menu Project >> Add Windows Form (Nombre: frmContactos.vb)
frmContacto Name Text StartPosition ControlBox FormBorderStyle GroupBox1, 2, 3, 4
TextBox1 Name ReadOnly TextBox2 Name TextBox3 Name txtDireccion [ 16 / 36 ]
txtNombres txtCodigo True frmContacto Contactos CenterScreen False FixedSingle
http://systemtak.blogspot.com
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

TextBox4 Name TextBox5 Name TextBox6 Name ComboBox1 Name ComboBox2 Name
Button1 Name PictureBox1 Name Button2 Name Button3 Name Button4 Name Button5
Name Button6 Name Button7 Name Button8 Name DataGridView1 Name
AllowUserToAddRows AllowUserToDeleteRows ReadOnly AllowUserToOrderColumns
dtgDetalle False False True True btnListar btnListar btnCancelar btnEliminar btnModificar
btnGrabar btnNuevo picFoto btnFoto cboPais cboProfesion txtEmail txtCelular txtTelefono
Diseo del Formulario: Todos los TextBox deben estar en: readOnly=True Los dos
combos: Enabled=False
http://systemtak.blogspot.com
[ 17 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Programacin Orientada a Objetos
Clase: conexin.vb (Encargada de Retornar la Cadena de conexin con SQL Server 2005)
Guardar con el nombre conexin.vb Click >> Add Para hacer uso de Ciertas libreras para
la Conexin Agregaremos una referencia al Proyecto. Click Derecho Sobre el Proyecto
(sysAgendaProyecto)>> Add Reference >> .Net >> SystemConfiguration >>
System.Configuration >> Ok.
Ahora si podemos editar el cdigo de conexin.vb Public Class conexion Public Shared
Function LeerCadenaConexion() As String Try Return
Configuration.ConfigurationManager.ConnectionStrings(1).ConnectionString Catch ex As
Exception Throw (ex) End Try End Function End Class
http://systemtak.blogspot.com
[ 18 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Esta clase (conexin.vb) nos permite accede al archivo: app.config <connectionStrings>
<add name="sysAgenda.My.MySettings.cnnSysAgenda" connectionString="Data
Source=sistemas02\SQLEXPRESS;Initial Catalog=sysAgenda;User
ID=sa;Password=inicio" providerName="System.Data.SqlClient" /> </connectionStrings>

Clase: pais.vb (Encargada de Retornar una consulta desde SQL Server)
Imports Microsoft.VisualBasic Imports System.Data Imports System.Data.SqlClient Public
Class pais Public Shared Function paisListar() As DataTable Dim cn As New
SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbPaisListar", cn) cmd.CommandType =
CommandType.StoredProcedure Try Dim da As New SqlDataAdapter(cmd) Dim tb As
New DataTable da.Fill(tb) Return tb da.Dispose() Catch ex As Exception Throw ex Finally
cn.Dispose() cmd.Dispose() End Try End Function End Class
Clase: profesion.vb (Encargada de Retornar una consulta desde SQL Server)
Imports Microsoft.VisualBasic Imports System.Data Imports System.Data.SqlClient Public
Class profesion Public Shared Function profesionListar() As DataTable Dim cn As New
SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbProfesionListar", cn) cmd.CommandType =
CommandType.StoredProcedure Try Dim da As New SqlDataAdapter(cmd) Dim tb As
New DataTable da.Fill(tb) Return tb da.Dispose() Catch ex As Exception Throw ex Finally
cn.Dispose() cmd.Dispose() End Try End Function End Class
http://systemtak.blogspot.com
[ 19 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Clase: usuario.vb (Encargada de buscar el Usuario y Password en la BD)
Imports Microsoft.VisualBasic Imports System.Data Imports System.Data.SqlClient Public
Class usuario Public Shared Function ExisteUsuario(ByVal xnick As String, ByVal xpass
As String) As Boolean Dim cn As New SqlConnection(conexion.LeerCadenaConexion)
Dim cmd As New SqlCommand("sp_tbUsuarioBusca", cn) cmd.CommandType =
CommandType.StoredProcedure cmd.Parameters.AddWithValue("@nick", xnick)
cmd.Parameters.AddWithValue("@pass", xpass) Try cn.Open() Dim lector As
SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection) If
lector.HasRows = True Then Return True Else Return False End If lector.Close() Catch ex
As Exception Throw ex Finally cn.Dispose() cmd.Dispose() End Try End Function Public
Shared Function usuarioListar() As DataTable Dim cn As New
SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbUsuarioLista", cn) cmd.CommandType =
CommandType.StoredProcedure Try Dim da As New SqlDataAdapter(cmd) Dim tb As
New DataTable da.Fill(tb) Return tb da.Dispose() Catch ex As Exception Throw ex Finally
cn.Dispose() cmd.Dispose() End Try End Function
End Class
http://systemtak.blogspot.com
[ 20 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Nota: Debemos crear un Procedimiento almacendo en SQL Server create procedure
sp_tbUsuarioBusca ( @nick varchar(15), @pass varchar(15) ) as set nocount on select
nick,password,nombres from tb_usuario where(nick=rtrim(@nick) and
password=rtrim(@pass))
create procedure sp_tbUsuarioLista as set nocount on select nick from tb_usuario order by
nick
Clase: contacto.vb (Encargada del Mantenimiento de la tabla contacto)
Imports Microsoft.VisualBasic Imports System.Data Imports System.Data.SqlClient Public
Class contacto Public Shared Function contactoListar() As DataTable Dim cn As New
SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbContactoListar", cn) cmd.CommandType =
CommandType.StoredProcedure Try Dim da As New SqlDataAdapter(cmd) Dim tb As
New DataTable da.Fill(tb) Return tb da.Dispose() Catch ex As Exception Throw ex Finally
cn.Dispose() cmd.Dispose() End Try End Function Public Shared Sub
contactoAgregar(ByVal xNombreContacto As String, ByVal xDireccionContacto As
String, ByVal xTelefonocontacto As String, ByVal xCelularContacto As String, ByVal
xEmailContacto As String, ByVal xFechaRegistro As Date, ByVal xFotoContacto As
String, ByVal xCodigoProfesion As Integer, ByVal xCodigoPais As Integer, ByVal xnick
As String) Dim cn As New SqlConnection(conexion.LeerCadenaConexion) Dim cmd As
New SqlCommand("sp_tbContactoInsertar", cn) cmd.CommandType =
CommandType.StoredProcedure cmd.Parameters.AddWithValue("@nombreContacto",
xNombreContacto) cmd.Parameters.AddWithValue("@direccionContacto",
xDireccionContacto) cmd.Parameters.AddWithValue("@telefonoContacto",
xTelefonoContacto) cmd.Parameters.AddWithValue("@celularContacto",
xCelularContacto) cmd.Parameters.AddWithValue("@emailContacto", xEmailContacto)
cmd.Parameters.AddWithValue("@fechaRegistro", xFechaRegistro)
http://systemtak.blogspot.com
[ 21 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

cmd.Parameters.AddWithValue("@fotoContacto", xFotoContacto)
cmd.Parameters.AddWithValue("@codigoProfesion", xCodigoProfesion)
cmd.Parameters.AddWithValue("@codigoPais", xCodigoPais)
cmd.Parameters.AddWithValue("@nick", xnick) Try cn.Open() cmd.ExecuteNonQuery()
Catch ex As Exception Throw ex Finally cn.Dispose() cmd.Dispose() End Try End Sub
Public Shared Sub contactoModificar(ByVal xCodigoContacto As Integer, ByVal
xNombreContacto As String, ByVal xDireccionContacto As String, ByVal
xTelefonocontacto As String, ByVal xCelularContacto As String, ByVal xEmailContacto
As String, ByVal xFechaRegistro As Date, ByVal xFotoContacto As String, ByVal
xCodigoProfesion As Integer, ByVal xCodigoPais As Integer, ByVal xnick As String) Dim
cn As New SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbContactoModificar", cn) cmd.CommandType =
CommandType.StoredProcedure cmd.Parameters.AddWithValue("@codigoContacto",
xCodigoContacto) cmd.Parameters.AddWithValue("@nombreContacto",
xNombreContacto) cmd.Parameters.AddWithValue("@direccionContacto",
xDireccionContacto) cmd.Parameters.AddWithValue("@telefonoContacto",
xTelefonoContacto) cmd.Parameters.AddWithValue("@celularContacto",
xCelularContacto) cmd.Parameters.AddWithValue("@emailContacto", xEmailContacto)
cmd.Parameters.AddWithValue("@fechaRegistro", xFechaRegistro)
cmd.Parameters.AddWithValue("@fotoContacto", xFotoContacto)
cmd.Parameters.AddWithValue("@codigoProfesion", xCodigoProfesion)
cmd.Parameters.AddWithValue("@codigoPais", xCodigoPais)
cmd.Parameters.AddWithValue("@nick", xnick) Try cn.Open() cmd.ExecuteNonQuery()
Catch ex As Exception Throw ex Finally cn.Dispose() cmd.Dispose() End Try End Sub
Public Shared Sub contactoEliminar(ByVal xCodigoContacto As Integer) Dim cn As New
SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbContactoEliminar", cn) cmd.CommandType =
CommandType.StoredProcedure cmd.Parameters.AddWithValue("@codigoContacto",
xCodigoContacto) Try cn.Open() cmd.ExecuteNonQuery() Catch ex As Exception Throw
ex Finally cn.Dispose() cmd.Dispose() End Try End Sub Public Shared Function
contactoListarPorPais(ByVal xCodigoPais As Integer) As DataRow
http://systemtak.blogspot.com
[ 22 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Dim cn As New SqlConnection(conexion.LeerCadenaConexion) Dim cmd As New
SqlCommand("sp_tbContactoListarPorPais", cn) cmd.CommandType =
CommandType.StoredProcedure cmd.Parameters.AddWithValue("@CodigoPais",
xCodigoPais) Try Dim da As New SqlDataAdapter(cmd) Dim tb As New DataTable
da.Fill(tb) Return tb.Rows(0) da.Dispose() Catch ex As Exception Throw ex Finally
cn.Dispose() cmd.Dispose() End Try End Function End Class
Programacin de los Controles Windows Forms
Formulario: frmInicio (Encargada del Mantenimiento de la tabla contacto)
Los cdigos se muestran para este formulario es:
Public Class frmInicio ' Cuando inicia el Formulario debe cargar la lista de Usuarios
Private Sub frmInicio_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load Me.cboUsuario.DisplayMember = "nick"
Me.cboUsuario.ValueMember = "nick" Me.cboUsuario.DataSource = usuario.usuarioListar
End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCancelar.Click 'Esto nos permite abandonar la aplicacion
Application.Exit() End Sub Private Sub cboUsuario_SelectedIndexChanged(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
cboUsuario.SelectedIndexChanged 'Activa el Boton de INGRESAR
Me.btnIngresar.Enabled = True End Sub Private Sub btnIngresar_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles btnIngresar.Click 'Nos
aseguramos que haya ingresado el passwor If txtPassword.TextLength > 0 Then 'Si el
usuario existe If usuario.ExisteUsuario(Me.cboUsuario.SelectedValue.ToString(),
Me.txtPassword.Text.Trim) Then
http://systemtak.blogspot.com
[ 23 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

Me.Hide() 'Llamamos al formulario principal MDI Dim frmPrin As frmPrincipal frmPrin =
New frmPrincipal(Me.cboUsuario.SelectedValue.ToString()) frmPrin.Show() Else
MessageBox.Show("Password Incorrecto", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error) txtPassword.Focus() End If Else MessageBox.Show("Ingrese
Password", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) txtPassword.Focus()
End If End Sub End Class
Formulario: frmPrincipal (Formulario Principal del Sistema
es un form MDI contiene el MENU y StatusStrip)
Los cdigos se muestran para este formulario es:
Public Class frmPrincipal ' constructor que recibe el usuario ..... Public Sub New(ByVal
xusuario As String) InitializeComponent() ' muestra el usuario en linea ..
Me.tsslUsuario.Text = "Usaurio: " & xusuario End Sub Sub New() ' This call is required by
the Windows Form Designer. InitializeComponent() ' Add any initialization after the
InitializeComponent() call. End Sub Private Sub mnuSalir_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles mnuSalir.Click Application.Exit()
End Sub Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
http://systemtak.blogspot.com
[ 24 / 36 ]
email: systemtak@gmail.com
Taller Programacin Visual Basic.NET paso a paso
2009

End Sub Private Sub frmPrincipal_FormClosing(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing ' esto
permite que abandonar el sistema por completo Application.Exit() End Sub Private Sub
mnuContacto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles mnuContacto.Click Dim frmCon As frmContacto frmCon = New frmContacto
frmCon.MdiParent = Me frmCon.Show() End Sub End Class
Formulario: frmContacto (Formulario
Este formulario nos permitir interactuar Con dos tablas ms que son: Tb_pais
Tb_profesion
en la que se desarrollan los mantenimientos de la tabla Contacto)
Desarrollaremos el Cdigo para cada uno De los controles (Botones) DataGridView
Asimismo nos permite cargar la Foto
Los cdigos se muestran para este formulario es: Imports System.IO Public Class
frmContacto 'Variable que nos permite almacenar la ruta del archivo de imagen 'que ser
almacenado en la BD Dim rutaFoto As String = "" 'El sistema Registra la fecha de Hoy
como ingreso de Registro Dim fecha As Date = Date.Now 'Variable que representa al
usuario en linea Dim vusuario As String 'Variable nos indica si el usuario quiere Grabar un
'Nuevo Registro o es una Modificacion Dim vtemp As Integer = 0
' Constructor de la clase formulario (recibe como parametro el usuario en linea)
Public Sub New(ByVal xusuario As String) InitializeComponent() ' muestra el usuario en
linea .. Compre el eBook OnLine ahora! 'asignamos un valor vusuario = xusuario (
systemtak@gmail.com ) $ 6.00 End Sub Sub New() eBook + Cdigo Fuente + Base de
Datos InitializeComponent() http://systemtak.blogspot.com
[ 25 / 36 ]
email: systemtak@gmail.com

You might also like