Your SlideShare is downloading. ×
Manual Visual Basic .NET SQL Server paso a paso
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Manual Visual Basic .NET SQL Server paso a paso

12,399
views

Published on

eBook taller de programación Visual Basic .Net 2008 & SQL Server 2005. …

eBook taller de programación Visual Basic .Net 2008 & SQL Server 2005.

Desarrollo de un Sistema SysAgenda paso a paso.

eBook 100% Práctico

Published in: Education, Technology

19 Comments
89 Likes
Statistics
Notes
No Downloads
Views
Total Views
12,399
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
265
Comments
19
Likes
89
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Método 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 Edición: ® 2009
  • 2. Taller Programación Visual Basic.NET paso a paso 2009   Curso Taller Programación Visual Basic .NET Paso a Paso 1. Introducción 2. Herramientas Necesarias 3. Análisis Básico del Sistema 4. Base de Datos SQL Server 2005 XE 5. Tablas 6. Procedimientos Almacenados 7. Conexión Visual Basic.NET con SQL Server 2005 XE 8. Interfaz del usuario Windows Forms con Visual Basic .NET 9. Formulario de Inicio de Sesión (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 
  • 3. Taller Programación Visual Basic.NET paso a paso 2009   Introducción A todos mis amigos que se inician en el fabuloso mundo del Desarrollo - de la Programación 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, Países; 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 satisfacción. Atentamente, Armando Tacza Profesional IT – SystemTak Noviembre - 2009 http://systemtak.blogspot.com [ 3 / 36 ] email: systemtak@gmail.com 
  • 4. Taller Programación Visual Basic.NET paso a paso 2009   Herramientas Necesarias - Microsoft Visual Studio 2008 - Microsoft SQL Server 2005 Express Edition - Microsoft Server Management Studio Express Análisis Básico del Sistema sysAgenda será analizada básicamente como si Ud. guardara un Contacto que tiene en su teléfono móvil; con la finalidad de hacer un modelo Entidad Relación y trabajar con más de una tabla es que incrementamos los detalles de Profesión y País. 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 botón Conectar: Asignaremos un Password al usuario sa Con el fin de conectarnos a través de éste usuario. - Click Botón derecho >> Propiedades - Asignar la Contraseña. - Al lado izquierdo click en Estado y Habilitar inicio de sesión. - Click en Aceptar. http://systemtak.blogspot.com [ 4 / 36 ] email: systemtak@gmail.com 
  • 5. Taller Programación 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 
  • 6. Taller Programación 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 
  • 7. Taller Programación 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 
  • 8. Taller Programación 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 
  • 9. Taller Programación Visual Basic.NET paso a paso 2009   Agregar todas las Tablas: Diagrama de la Base de Datos De un determinado Pais tenemos Muchos Contactos (Relación de 1 a muchos) De una determinada Profesion tenemos Muchos Contactos (Relación de 1 a muchos) Procedimientos Almacenados   (Porciones de Código Reutilizable en el Servidor se programan a través del lenguaje Transact - SQL) http://systemtak.blogspot.com [ 9 / 36 ] email: systemtak@gmail.com 
  • 10. Taller Programación Visual Basic.NET paso a paso 2009   Borrar el código generado por la plantilla, enfocaremos Nuestro Procedimiento Almacenado a cuestiones muy básicas con fines didácticos. sp_tbPaisListar (Procedimiento que la usaremos para rellenar un lista de Países) >> 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, Ingeniería, Administración, Economía) 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 Password Nombres Admin password Administrador del Sistema Invitado guest Invitado a Usar el Sistema http://systemtak.blogspot.com [ 10 / 36 ] email: systemtak@gmail.com 
  • 11. Taller Programación Visual Basic.NET paso a paso 2009   Los Procedimientos Almacenados para el Mantenimiento de la tabla tb_contacto a continuación. 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,@email 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,TelefonoContact o=@telefonoContacto,CelularContacto=@celularContacto,EmailContacto=@emailContacto,F echaRegistro=@fechaRegistro,FotoContacto=@fotoContacto,CodigoProfesion=@codigoProfe 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 
  • 12. Taller Programación 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 aplicación http://systemtak.blogspot.com [ 12 / 36 ] email: systemtak@gmail.com 
  • 13. Taller Programación Visual Basic.NET paso a paso 2009   Desarrollando la Aplicación 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 Conexión 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 
  • 14. Taller Programación Visual Basic.NET paso a paso 2009   Click >> Next Click >> Botón Nueva Conexión Seleccionamos SQL Server El Server name lo obtenemos desde nuestro SQL Server. (sistemas02SQLEXPRESS) Click en Next http://systemtak.blogspot.com [ 14 / 36 ] email: systemtak@gmail.com 
  • 15. Taller Programación Visual Basic.NET paso a paso 2009   Ingresamos el nombre de la cadena de Conexión (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, diseños de los formularios centrándonos básicamente en la tabla (tb_contacto). Diseño del Formulario: Acceso al Sistema (Usuario & Password) Form1 Name frmInicio Text Acceso StartPosition CenterScreen ControlBox False FormBorderStyle FixedSingle GroupBox1 Text Label1 Text Usuario: Labe2 Text Password ComboBox1 Name Cbousuario DropDownStyle DropDownList TextBox1 Name txtPassword PasswordChar * Button1 Name btnIngresar Text &Ingresar Button2 Name btnCancelar Text &Cancelar http://systemtak.blogspot.com [ 15 / 36 ] email: systemtak@gmail.com 
  • 16. Taller Programación Visual Basic.NET paso a paso 2009   Diseño del Formulario: Formulario Principal Click >> Menu Project >> Add Windows Form (Nombre: frmPrincipal.vb) Propiedades para el formulario frmPrincipal Name frmPrincipal Text Sistema Agenda WindowState Maximized IsMDIContainer True MaximizeBox False MenuStrip Name mnuPrincipal mnuInicio SubMenu mnuContacto SubMenu mnuSalir SubMenu StatusTrip1 ToolStripStatusLabel Tsslusuario Text Usuario Diseño del Formulario: Formulario de Contactos Click >> Menu Project >> Add Windows Form (Nombre: frmContactos.vb) frmContacto Name frmContacto Text Contactos StartPosition CenterScreen ControlBox False FormBorderStyle FixedSingle GroupBox1, 2, 3, 4 TextBox1 Name txtCodigo ReadOnly True TextBox2 Name txtNombres TextBox3 Name txtDireccion http://systemtak.blogspot.com [ 16 / 36 ] email: systemtak@gmail.com 
  • 17. Taller Programación Visual Basic.NET paso a paso 2009   TextBox4 Name txtTelefono TextBox5 Name txtCelular TextBox6 Name txtEmail ComboBox1 Name cboProfesion ComboBox2 Name cboPais Button1 Name btnFoto PictureBox1 Name picFoto Button2 Name btnNuevo Button3 Name btnGrabar Button4 Name btnModificar Button5 Name btnEliminar Button6 Name btnCancelar Button7 Name btnListar Button8 Name btnListar DataGridView1 Name dtgDetalle AllowUserToAddRows False AllowUserToDeleteRows False ReadOnly True AllowUserToOrderColumns True Diseño 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 
  • 18. Taller Programación Visual Basic.NET paso a paso 2009   Programación Orientada a Objetos Clase: conexión.vb (Encargada de Retornar la Cadena de conexión con SQL Server 2005) Guardar con el nombre conexión.vb Click >> Add Para hacer uso de Ciertas librerías para la Conexión Agregaremos una referencia al Proyecto. Click Derecho Sobre el Proyecto (sysAgendaProyecto)>> Add Reference >> .Net >> SystemConfiguration >> System.Configuration >> Ok. Ahora si podemos editar el código de conexión.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 
  • 19. Taller Programación Visual Basic.NET paso a paso 2009   Esta clase (conexión.vb) nos permite accede al archivo: app.config … <connectionStrings> <add name="sysAgenda.My.MySettings.cnnSysAgenda" connectionString="Data Source=sistemas02SQLEXPRESS;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 
  • 20. Taller Programación 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 
  • 21. Taller Programación 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 
  • 22. Taller Programación 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 
  • 23. Taller Programación 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 Programación de los Controles Windows Forms Formulario: frmInicio (Encargada del Mantenimiento de la tabla contacto) Los códigos 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 
  • 24. Taller Programación 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 códigos 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 
  • 25. Taller Programación 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 en la que se desarrollan los mantenimientos de la tabla Contacto) Este formulario nos permitirá interactuar Con dos tablas más que son: Tb_pais Tb_profesion Desarrollaremos el Código para cada uno De los controles (Botones) DataGridView Asimismo nos permite cargar la Foto Los códigos 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 + Código Fuente + Base de Datos InitializeComponent() http://systemtak.blogspot.com [ 25 / 36 ] email: systemtak@gmail.com