SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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
 
http://systemtak.blogspot.com [ 2 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 3 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 4 / 36 ] email: systemtak@gmail.com 
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.
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 5 / 36 ] email: systemtak@gmail.com 
- 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 :
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 6 / 36 ] email: systemtak@gmail.com 
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)
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 7 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 8 / 36 ] email: systemtak@gmail.com 
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.
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 9 / 36 ] email: systemtak@gmail.com 
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)
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 10 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 11 / 36 ] email: systemtak@gmail.com 
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)
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 12 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 13 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 14 / 36 ] email: systemtak@gmail.com 
Click >> Next
Click >> Botón Nueva Conexión
Seleccionamos SQL Server
El Server name lo obtenemos desde nuestro SQL Server. (sistemas02SQLEXPRESS)
Click en Next
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 15 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 16 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 17 / 36 ] email: systemtak@gmail.com 
Diseño del Formulario:
Todos los TextBox deben estar en: readOnly=True
Los dos combos: Enabled=False
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 18 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 19 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 20 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 21 / 36 ] email: systemtak@gmail.com 
Nota: Debemos crear un Procedimiento almacendo en SQL Server
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)
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 22 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 23 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 24 / 36 ] email: systemtak@gmail.com 
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
Taller Programación Visual Basic.NET paso a paso 2009
 
http://systemtak.blogspot.com [ 25 / 36 ] email: systemtak@gmail.com 
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 ..
'asignamos un valor
vusuario = xusuario
End Sub
Sub New()
InitializeComponent()
Compre el eBook OnLine ahora!
( systemtak@gmail.com ) $ 6.00
eBook + Código Fuente + Base de Datos

Más contenido relacionado

La actualidad más candente

Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0WendyMendez30
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basicsantiagomario8
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datosRafael Quintero
 
Manual para la_creacion_de_aplicaciones_web
Manual para la_creacion_de_aplicaciones_webManual para la_creacion_de_aplicaciones_web
Manual para la_creacion_de_aplicaciones_webAnnie Mrtx
 
Visual basic conexion base de datos
Visual basic conexion base de datos Visual basic conexion base de datos
Visual basic conexion base de datos luilly xavier
 
Manual de pagina dinámica 01
Manual de pagina dinámica 01Manual de pagina dinámica 01
Manual de pagina dinámica 01Ramiro Cerazo
 
Manual de uso de ms outlook
Manual de uso de ms outlookManual de uso de ms outlook
Manual de uso de ms outlookMonserrat Tg
 
Informe de enlace de Visual Basic a bases de datos por Elysaul Yoris
Informe de enlace de Visual Basic a bases de datos por Elysaul YorisInforme de enlace de Visual Basic a bases de datos por Elysaul Yoris
Informe de enlace de Visual Basic a bases de datos por Elysaul Yoriskleidynelliz
 
Manual de-manipulacion-de-datos-rosario
Manual de-manipulacion-de-datos-rosarioManual de-manipulacion-de-datos-rosario
Manual de-manipulacion-de-datos-rosarioLupithaa Guerrero
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERDarwin Durand
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion juandavid1118
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.yanburbano
 
revista base de datos y visual studio
revista base de datos y visual studiorevista base de datos y visual studio
revista base de datos y visual studioJhos Ayneth Suarez
 
Manual de uso ms outlook
Manual de uso ms outlookManual de uso ms outlook
Manual de uso ms outlookzaidalydiaz
 

La actualidad más candente (19)

informe
informeinforme
informe
 
Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basic
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datos
 
Manual para la_creacion_de_aplicaciones_web
Manual para la_creacion_de_aplicaciones_webManual para la_creacion_de_aplicaciones_web
Manual para la_creacion_de_aplicaciones_web
 
Manual os commerce
Manual os commerceManual os commerce
Manual os commerce
 
Intro Power Builder - JUGM 2010
Intro Power Builder - JUGM 2010Intro Power Builder - JUGM 2010
Intro Power Builder - JUGM 2010
 
Visual basic conexion base de datos
Visual basic conexion base de datos Visual basic conexion base de datos
Visual basic conexion base de datos
 
Manual de pagina dinámica 01
Manual de pagina dinámica 01Manual de pagina dinámica 01
Manual de pagina dinámica 01
 
Visual y sql
Visual y sqlVisual y sql
Visual y sql
 
Manual impresión de etiquetas Avery, modelo 5160
Manual impresión de etiquetas Avery, modelo 5160Manual impresión de etiquetas Avery, modelo 5160
Manual impresión de etiquetas Avery, modelo 5160
 
Manual de uso de ms outlook
Manual de uso de ms outlookManual de uso de ms outlook
Manual de uso de ms outlook
 
Informe de enlace de Visual Basic a bases de datos por Elysaul Yoris
Informe de enlace de Visual Basic a bases de datos por Elysaul YorisInforme de enlace de Visual Basic a bases de datos por Elysaul Yoris
Informe de enlace de Visual Basic a bases de datos por Elysaul Yoris
 
Manual de-manipulacion-de-datos-rosario
Manual de-manipulacion-de-datos-rosarioManual de-manipulacion-de-datos-rosario
Manual de-manipulacion-de-datos-rosario
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVER
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.Guardar en base de datos MySQL desde HTML con PHP.
Guardar en base de datos MySQL desde HTML con PHP.
 
revista base de datos y visual studio
revista base de datos y visual studiorevista base de datos y visual studio
revista base de datos y visual studio
 
Manual de uso ms outlook
Manual de uso ms outlookManual de uso ms outlook
Manual de uso ms outlook
 

Destacado

la alimentación
la alimentación la alimentación
la alimentación angeles1802
 
Plan de, las cinco valeria aceverdo examen 1ro bach
Plan de, las cinco valeria aceverdo examen 1ro bachPlan de, las cinco valeria aceverdo examen 1ro bach
Plan de, las cinco valeria aceverdo examen 1ro bachvaleriaacevedo1
 
Ensayando
EnsayandoEnsayando
EnsayandoXD FS
 
Planificacion curricular unidad_1
Planificacion curricular unidad_1Planificacion curricular unidad_1
Planificacion curricular unidad_1doloreslilibeth
 
LA CHINE - LABORATOIRE DU MONDE
LA CHINE - LABORATOIRE DU MONDELA CHINE - LABORATOIRE DU MONDE
LA CHINE - LABORATOIRE DU MONDEBenBzh
 
Tecnologías de la información y comunicación
Tecnologías de la información y comunicaciónTecnologías de la información y comunicación
Tecnologías de la información y comunicaciónnachole34
 
Los ciegos y el elefante
Los ciegos y el elefanteLos ciegos y el elefante
Los ciegos y el elefanteDCARDENAS1381
 
Eix cronològic clàudia pérez, alexia ribas, iara sorribas
Eix cronològic   clàudia pérez, alexia ribas, iara sorribasEix cronològic   clàudia pérez, alexia ribas, iara sorribas
Eix cronològic clàudia pérez, alexia ribas, iara sorribas12clpere
 
Présentation oral mémoire nicolas puigmal m1 mef svt (2)
Présentation oral mémoire nicolas puigmal m1 mef svt (2)Présentation oral mémoire nicolas puigmal m1 mef svt (2)
Présentation oral mémoire nicolas puigmal m1 mef svt (2)Nicolas Frigola
 
Trabajosobrelapaz 110407055740-phpapp01
Trabajosobrelapaz 110407055740-phpapp01Trabajosobrelapaz 110407055740-phpapp01
Trabajosobrelapaz 110407055740-phpapp01Erick Caro Gutierrez
 
Proyecto eventos express
Proyecto eventos expressProyecto eventos express
Proyecto eventos expressBryan Rosales
 
Algoritmo realizados en c++
Algoritmo realizados en c++Algoritmo realizados en c++
Algoritmo realizados en c++Karen Florez
 

Destacado (20)

la alimentación
la alimentación la alimentación
la alimentación
 
Plan de, las cinco valeria aceverdo examen 1ro bach
Plan de, las cinco valeria aceverdo examen 1ro bachPlan de, las cinco valeria aceverdo examen 1ro bach
Plan de, las cinco valeria aceverdo examen 1ro bach
 
Redes
RedesRedes
Redes
 
Cases to protect your Samsung Galaxy S6
Cases to protect your Samsung Galaxy S6Cases to protect your Samsung Galaxy S6
Cases to protect your Samsung Galaxy S6
 
Ensayando
EnsayandoEnsayando
Ensayando
 
Veiga.ediciondeimagenes
Veiga.ediciondeimagenesVeiga.ediciondeimagenes
Veiga.ediciondeimagenes
 
Planificacion curricular unidad_1
Planificacion curricular unidad_1Planificacion curricular unidad_1
Planificacion curricular unidad_1
 
LA CHINE - LABORATOIRE DU MONDE
LA CHINE - LABORATOIRE DU MONDELA CHINE - LABORATOIRE DU MONDE
LA CHINE - LABORATOIRE DU MONDE
 
Los tic
Los ticLos tic
Los tic
 
Exposicion de curriculo
Exposicion de curriculoExposicion de curriculo
Exposicion de curriculo
 
Tecnologías de la información y comunicación
Tecnologías de la información y comunicaciónTecnologías de la información y comunicación
Tecnologías de la información y comunicación
 
Corel draw x5
Corel draw x5Corel draw x5
Corel draw x5
 
Los ciegos y el elefante
Los ciegos y el elefanteLos ciegos y el elefante
Los ciegos y el elefante
 
Lectores rss
Lectores rssLectores rss
Lectores rss
 
Eix cronològic clàudia pérez, alexia ribas, iara sorribas
Eix cronològic   clàudia pérez, alexia ribas, iara sorribasEix cronològic   clàudia pérez, alexia ribas, iara sorribas
Eix cronològic clàudia pérez, alexia ribas, iara sorribas
 
Présentation oral mémoire nicolas puigmal m1 mef svt (2)
Présentation oral mémoire nicolas puigmal m1 mef svt (2)Présentation oral mémoire nicolas puigmal m1 mef svt (2)
Présentation oral mémoire nicolas puigmal m1 mef svt (2)
 
Recurso de casacion
Recurso de casacionRecurso de casacion
Recurso de casacion
 
Trabajosobrelapaz 110407055740-phpapp01
Trabajosobrelapaz 110407055740-phpapp01Trabajosobrelapaz 110407055740-phpapp01
Trabajosobrelapaz 110407055740-phpapp01
 
Proyecto eventos express
Proyecto eventos expressProyecto eventos express
Proyecto eventos express
 
Algoritmo realizados en c++
Algoritmo realizados en c++Algoritmo realizados en c++
Algoritmo realizados en c++
 

Similar a VISUAL BASIC

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
 
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
 
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
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jspjujuju12
 
Informe del sistema ctas por cobrar
Informe del sistema ctas por cobrarInforme del sistema ctas por cobrar
Informe del sistema ctas por cobrarmirameyvenauditoria
 
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014wilian_ramos_perez
 
Exportacion e importacion de los datos en oracle
Exportacion e importacion de los datos en oracleExportacion e importacion de los datos en oracle
Exportacion e importacion de los datos en oracleEdgar Sandoval
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salasLeomarSalas2
 
Primeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosPrimeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosHeliberto Arias
 
Instalación y configuración de un servidor web en Windows Server 2008
Instalación y configuración de un servidor web en Windows Server 2008Instalación y configuración de un servidor web en Windows Server 2008
Instalación y configuración de un servidor web en Windows Server 2008Mario Bautista
 

Similar a VISUAL BASIC (20)

Actividad 2 correo exhange windows
Actividad 2 correo exhange windowsActividad 2 correo exhange windows
Actividad 2 correo exhange windows
 
Replicacion en SQLserver2008r2
Replicacion en  SQLserver2008r2Replicacion en  SQLserver2008r2
Replicacion en SQLserver2008r2
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monetti
 
vAplicación parte 1
vAplicación parte 1vAplicación parte 1
vAplicación parte 1
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdf
 
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
 
Manual reportes jsp
Manual reportes jspManual reportes jsp
Manual reportes jsp
 
284
284284
284
 
TVCABLE
TVCABLE TVCABLE
TVCABLE
 
Informe del sistema ctas por cobrar
Informe del sistema ctas por cobrarInforme del sistema ctas por cobrar
Informe del sistema ctas por cobrar
 
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014
MANUAL DE INSTALACION Y USO DE MICROSFT SQL SERVER 2014
 
Instalacion de sql server 2008
Instalacion de sql server 2008Instalacion de sql server 2008
Instalacion de sql server 2008
 
Instalacion sqlserver2008
Instalacion sqlserver2008Instalacion sqlserver2008
Instalacion sqlserver2008
 
Sql2008
Sql2008Sql2008
Sql2008
 
Exportacion e importacion de los datos en oracle
Exportacion e importacion de los datos en oracleExportacion e importacion de los datos en oracle
Exportacion e importacion de los datos en oracle
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salas
 
Primeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datosPrimeros pasos con Talent Open Studio TOS : Importando datos
Primeros pasos con Talent Open Studio TOS : Importando datos
 
Instalación y configuración de un servidor web en Windows Server 2008
Instalación y configuración de un servidor web en Windows Server 2008Instalación y configuración de un servidor web en Windows Server 2008
Instalación y configuración de un servidor web en Windows Server 2008
 
Instalación
InstalaciónInstalación
Instalación
 

Más de debrando

ANTIGUO TESTAMENTO
ANTIGUO TESTAMENTOANTIGUO TESTAMENTO
ANTIGUO TESTAMENTOdebrando
 
APUNTE TEORICO
APUNTE TEORICOAPUNTE TEORICO
APUNTE TEORICOdebrando
 
centro de gravedad de un triangulo
centro de gravedad de un triangulocentro de gravedad de un triangulo
centro de gravedad de un triangulodebrando
 
centro de gravedad de figuras geometricas
centro de gravedad de figuras geometricascentro de gravedad de figuras geometricas
centro de gravedad de figuras geometricasdebrando
 
TEORIA DEL CEREBRO
TEORIA DEL CEREBROTEORIA DEL CEREBRO
TEORIA DEL CEREBROdebrando
 
POTENCIA MONOFASICA
POTENCIA MONOFASICAPOTENCIA MONOFASICA
POTENCIA MONOFASICAdebrando
 
ANALISIS DE CIRCUITOS
ANALISIS DE CIRCUITOSANALISIS DE CIRCUITOS
ANALISIS DE CIRCUITOSdebrando
 
FACTOR DE POTENCIA
FACTOR DE POTENCIAFACTOR DE POTENCIA
FACTOR DE POTENCIAdebrando
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACIONdebrando
 
CIRCUITOS ELECTRICOS
CIRCUITOS ELECTRICOSCIRCUITOS ELECTRICOS
CIRCUITOS ELECTRICOSdebrando
 
PRACTICA SOBRE CIRCUITOS ELECTRICOS II
PRACTICA SOBRE CIRCUITOS ELECTRICOS IIPRACTICA SOBRE CIRCUITOS ELECTRICOS II
PRACTICA SOBRE CIRCUITOS ELECTRICOS IIdebrando
 
DESCRIPCION GENERAL
DESCRIPCION GENERALDESCRIPCION GENERAL
DESCRIPCION GENERALdebrando
 
21366111 comprobacion-de-dispositivos
21366111 comprobacion-de-dispositivos21366111 comprobacion-de-dispositivos
21366111 comprobacion-de-dispositivosdebrando
 

Más de debrando (19)

EJECUTIVO
EJECUTIVOEJECUTIVO
EJECUTIVO
 
LAS ROCAS
LAS ROCASLAS ROCAS
LAS ROCAS
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
ANTIGUO TESTAMENTO
ANTIGUO TESTAMENTOANTIGUO TESTAMENTO
ANTIGUO TESTAMENTO
 
PLANOS
PLANOSPLANOS
PLANOS
 
GLOBAL
GLOBALGLOBAL
GLOBAL
 
APUNTE
APUNTEAPUNTE
APUNTE
 
APUNTE TEORICO
APUNTE TEORICOAPUNTE TEORICO
APUNTE TEORICO
 
centro de gravedad de un triangulo
centro de gravedad de un triangulocentro de gravedad de un triangulo
centro de gravedad de un triangulo
 
centro de gravedad de figuras geometricas
centro de gravedad de figuras geometricascentro de gravedad de figuras geometricas
centro de gravedad de figuras geometricas
 
TEORIA DEL CEREBRO
TEORIA DEL CEREBROTEORIA DEL CEREBRO
TEORIA DEL CEREBRO
 
POTENCIA MONOFASICA
POTENCIA MONOFASICAPOTENCIA MONOFASICA
POTENCIA MONOFASICA
 
ANALISIS DE CIRCUITOS
ANALISIS DE CIRCUITOSANALISIS DE CIRCUITOS
ANALISIS DE CIRCUITOS
 
FACTOR DE POTENCIA
FACTOR DE POTENCIAFACTOR DE POTENCIA
FACTOR DE POTENCIA
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
CIRCUITOS ELECTRICOS
CIRCUITOS ELECTRICOSCIRCUITOS ELECTRICOS
CIRCUITOS ELECTRICOS
 
PRACTICA SOBRE CIRCUITOS ELECTRICOS II
PRACTICA SOBRE CIRCUITOS ELECTRICOS IIPRACTICA SOBRE CIRCUITOS ELECTRICOS II
PRACTICA SOBRE CIRCUITOS ELECTRICOS II
 
DESCRIPCION GENERAL
DESCRIPCION GENERALDESCRIPCION GENERAL
DESCRIPCION GENERAL
 
21366111 comprobacion-de-dispositivos
21366111 comprobacion-de-dispositivos21366111 comprobacion-de-dispositivos
21366111 comprobacion-de-dispositivos
 

Último

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 

Último (20)

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 

VISUAL BASIC

  • 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   http://systemtak.blogspot.com [ 2 / 36 ] email: systemtak@gmail.com  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
  • 3. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 3 / 36 ] email: systemtak@gmail.com  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
  • 4. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 4 / 36 ] email: systemtak@gmail.com  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.
  • 5. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 5 / 36 ] email: systemtak@gmail.com  - 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 :
  • 6. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 6 / 36 ] email: systemtak@gmail.com  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)
  • 7. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 7 / 36 ] email: systemtak@gmail.com  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
  • 8. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 8 / 36 ] email: systemtak@gmail.com  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.
  • 9. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 9 / 36 ] email: systemtak@gmail.com  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)
  • 10. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 10 / 36 ] email: systemtak@gmail.com  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
  • 11. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 11 / 36 ] email: systemtak@gmail.com  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)
  • 12. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 12 / 36 ] email: systemtak@gmail.com  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
  • 13. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 13 / 36 ] email: systemtak@gmail.com  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
  • 14. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 14 / 36 ] email: systemtak@gmail.com  Click >> Next Click >> Botón Nueva Conexión Seleccionamos SQL Server El Server name lo obtenemos desde nuestro SQL Server. (sistemas02SQLEXPRESS) Click en Next
  • 15. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 15 / 36 ] email: systemtak@gmail.com  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
  • 16. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 16 / 36 ] email: systemtak@gmail.com  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
  • 17. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 17 / 36 ] email: systemtak@gmail.com  Diseño del Formulario: Todos los TextBox deben estar en: readOnly=True Los dos combos: Enabled=False 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
  • 18. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 18 / 36 ] email: systemtak@gmail.com  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
  • 19. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 19 / 36 ] email: systemtak@gmail.com  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
  • 20. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 20 / 36 ] email: systemtak@gmail.com  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
  • 21. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 21 / 36 ] email: systemtak@gmail.com  Nota: Debemos crear un Procedimiento almacendo en SQL Server 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) 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
  • 22. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 22 / 36 ] email: systemtak@gmail.com  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
  • 23. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 23 / 36 ] email: systemtak@gmail.com  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
  • 24. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 24 / 36 ] email: systemtak@gmail.com  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
  • 25. Taller Programación Visual Basic.NET paso a paso 2009   http://systemtak.blogspot.com [ 25 / 36 ] email: systemtak@gmail.com  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 .. 'asignamos un valor vusuario = xusuario End Sub Sub New() InitializeComponent() Compre el eBook OnLine ahora! ( systemtak@gmail.com ) $ 6.00 eBook + Código Fuente + Base de Datos