SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
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
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 

Contenu connexe

En vedette

Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Ziscko
 
Manual acceso a datos vb.net
Manual acceso a datos vb.netManual acceso a datos vb.net
Manual acceso a datos vb.netcedido
 
Ejemplo ACTUALIZAR registros desde Visual Basic 2012
Ejemplo ACTUALIZAR registros desde Visual Basic 2012Ejemplo ACTUALIZAR registros desde Visual Basic 2012
Ejemplo ACTUALIZAR registros desde Visual Basic 2012Vane Borjas
 
Como diseñar un sistema de ventas
Como diseñar un sistema de ventasComo diseñar un sistema de ventas
Como diseñar un sistema de ventasBien Pensado
 
22 Leyes Inmutables del Marketing
22 Leyes Inmutables del Marketing22 Leyes Inmutables del Marketing
22 Leyes Inmutables del MarketingAdrián Chiogna
 
Comercio electrónico en méxico
Comercio electrónico en méxicoComercio electrónico en méxico
Comercio electrónico en méxicoOmar Sánchez
 
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02LOPEZMOURENZA
 
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...Portal Educativo Colombia Aprende
 
Guia de Evaluación, Monitoreo y Supervisión para servicios de salud
Guia de Evaluación, Monitoreo y Supervisión para servicios de saludGuia de Evaluación, Monitoreo y Supervisión para servicios de salud
Guia de Evaluación, Monitoreo y Supervisión para servicios de saludAnibal Velasquez
 
32 ways to make your blog suck less
32 ways to make your blog suck less32 ways to make your blog suck less
32 ways to make your blog suck lessScott Hanselman
 
Resoluciones 4002 2007
Resoluciones 4002 2007Resoluciones 4002 2007
Resoluciones 4002 2007Carlos Ramirez
 
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)Zacatecas TresPuntoCero
 
Proyectos_de_innovacion
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacionWebMD
 

En vedette (20)

Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!
 
Manual acceso a datos vb.net
Manual acceso a datos vb.netManual acceso a datos vb.net
Manual acceso a datos vb.net
 
Manual visual studio 2010
Manual visual studio 2010Manual visual studio 2010
Manual visual studio 2010
 
Ejemplo ACTUALIZAR registros desde Visual Basic 2012
Ejemplo ACTUALIZAR registros desde Visual Basic 2012Ejemplo ACTUALIZAR registros desde Visual Basic 2012
Ejemplo ACTUALIZAR registros desde Visual Basic 2012
 
MANUAL DE VISUAL BASIC. 2010
MANUAL DE VISUAL BASIC. 2010MANUAL DE VISUAL BASIC. 2010
MANUAL DE VISUAL BASIC. 2010
 
Como diseñar un sistema de ventas
Como diseñar un sistema de ventasComo diseñar un sistema de ventas
Como diseñar un sistema de ventas
 
22 Leyes Inmutables del Marketing
22 Leyes Inmutables del Marketing22 Leyes Inmutables del Marketing
22 Leyes Inmutables del Marketing
 
OPC TWS – MODULO 06
OPC TWS – MODULO 06OPC TWS – MODULO 06
OPC TWS – MODULO 06
 
Comercio electrónico en méxico
Comercio electrónico en méxicoComercio electrónico en méxico
Comercio electrónico en méxico
 
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02
Ideasyrecursosparatrabajarlacompetenciasenelaula 130310124952-phpapp02
 
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
 
Geld verdienen met Linkedin
Geld verdienen met LinkedinGeld verdienen met Linkedin
Geld verdienen met Linkedin
 
manual visual basic 02
manual visual basic 02 manual visual basic 02
manual visual basic 02
 
Guia de Evaluación, Monitoreo y Supervisión para servicios de salud
Guia de Evaluación, Monitoreo y Supervisión para servicios de saludGuia de Evaluación, Monitoreo y Supervisión para servicios de salud
Guia de Evaluación, Monitoreo y Supervisión para servicios de salud
 
32 ways to make your blog suck less
32 ways to make your blog suck less32 ways to make your blog suck less
32 ways to make your blog suck less
 
Resoluciones 4002 2007
Resoluciones 4002 2007Resoluciones 4002 2007
Resoluciones 4002 2007
 
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)
Segundo Paquete Económico 2017 Zacatecas - Egresos (3-9)
 
Network recetas latinassaludables
Network recetas latinassaludablesNetwork recetas latinassaludables
Network recetas latinassaludables
 
Elaboracion PEI 2016
Elaboracion PEI 2016Elaboracion PEI 2016
Elaboracion PEI 2016
 
Proyectos_de_innovacion
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacion
 

Similaire à Visual Basic .NET y SQL Server: Método paso a paso para desarrollar un mini sistema de contactos

VISUAL BASIC
VISUAL BASICVISUAL BASIC
VISUAL BASICdebrando
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windowsYeider Fernandez
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windowsYeider Fernandez
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monettiangelinamonetti1
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistenciaVictor Aravena
 
Documentacion del proyecto
Documentacion del proyectoDocumentacion del proyecto
Documentacion del proyectoFernando Sorto
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jspjujuju12
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasunefa
 
vAplicación parte 1
vAplicación parte 1vAplicación parte 1
vAplicación parte 1yanburbano
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdfkabern
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdfkabern
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datosRafael Quintero
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basicsantiagomario8
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasunefa
 
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLiteParte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLiteJuan Manuel
 
Reporte de-practicas-unidad-1 equipo 8
Reporte de-practicas-unidad-1 equipo 8Reporte de-practicas-unidad-1 equipo 8
Reporte de-practicas-unidad-1 equipo 8Tescha Tescha
 

Similaire à Visual Basic .NET y SQL Server: Método paso a paso para desarrollar un mini sistema de contactos (20)

VISUAL BASIC
VISUAL BASICVISUAL BASIC
VISUAL BASIC
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windows
 
Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windows
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monetti
 
Replicacion en SQLserver2008r2
Replicacion en  SQLserver2008r2Replicacion en  SQLserver2008r2
Replicacion en SQLserver2008r2
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistencia
 
Documentacion del proyecto
Documentacion del proyectoDocumentacion del proyecto
Documentacion del proyecto
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
vAplicación parte 1
vAplicación parte 1vAplicación parte 1
vAplicación parte 1
 
Proyecto visual studio
Proyecto visual studioProyecto visual studio
Proyecto visual studio
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdf
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datos
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basic
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
284
284284
284
 
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLiteParte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
Parte I. Notas Rapidas (sticky notes) App w8: MVVM y SQLite
 
Reporte de-practicas-unidad-1 equipo 8
Reporte de-practicas-unidad-1 equipo 8Reporte de-practicas-unidad-1 equipo 8
Reporte de-practicas-unidad-1 equipo 8
 
Lanzamiento Omni Chile
Lanzamiento Omni ChileLanzamiento Omni Chile
Lanzamiento Omni Chile
 

Dernier

TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaPresentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaFarid Abud
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdfDocencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdfDemetrio Ccesa Rayme
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfmiriamguevara21
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoJosé Luis Palma
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Edith Liccioni
 
Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEJosé Hecht
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 

Dernier (20)

TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsaPresentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
Presentacionde Prueba 2024 dsdasdasdsadsadsadsadasdasdsadsa
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdfDocencia en la Era de la Inteligencia Artificial UB4  Ccesa007.pdf
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdf
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro Delgado
 
Unidad 1 | Metodología de la Investigación
Unidad 1 | Metodología de la InvestigaciónUnidad 1 | Metodología de la Investigación
Unidad 1 | Metodología de la Investigación
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.
 
Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUE
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 

Visual Basic .NET y SQL Server: Método paso a paso para desarrollar un mini sistema de contactos

  • 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