Documentos de Académico
Documentos de Profesional
Documentos de Cultura
atacza@gmail.com
http://www.facebook.com/atacza
http://twitter.com/atak
Edicin: 2009
2009
1. Introduccin
2.
Herramientas Necesarias
5. Tablas
6. Procedimientos Almacenados
http://systemtak.blogspot.com
[2/36]
email: systemtak@gmail.com
2009
Introduccin
A todos mis amigos que se inician en el fabuloso mundo del Desarrollo - de la Programacin de
Aplicaciones como quieran decirlo; que me imagino tienen muchas dudas cuando inician un proyecto real, en
esta oportunidad quiero plasmar de manera detallada la secuencia, pasos que nos llevan a obtener un sistema
Cliente / Servidor; sysAgenda.
Nuestro sistema registrar a Contactos de Diferentes Carreras Profesionales, Pases; los cuales los
tendremos registrados ante una necesidad de obtener sus datos, para hacerlo sencillo y ser comprensible
trabajaremos con 3 tablas en la Base de Datos y una tabla de registro de Usuarios.
Espero que nos permita interactuar y sea este taller de su total satisfaccin.
Atentamente,
Armando Tacza
Profesional IT SystemTak
Noviembre - 2009
http://systemtak.blogspot.com
[3/36]
email: systemtak@gmail.com
2009
Herramientas Necesarias
-
Asignar la Contrasea.
Click en Aceptar.
http://systemtak.blogspot.com
[4/36]
email: systemtak@gmail.com
2009
http://systemtak.blogspot.com
[5/36]
email: systemtak@gmail.com
2009
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
2009
Tablas:
tb_profesion
tb_pais
http://systemtak.blogspot.com
[7/36]
email: systemtak@gmail.com
2009
tb_contacto:
tb_usuario:
http://systemtak.blogspot.com
[8/36]
email: systemtak@gmail.com
2009
Procedimientos Almacenados
(Porciones de Cdigo Reutilizable en el Servidor se programan a travs del lenguaje Transact - SQL)
http://systemtak.blogspot.com
[9/36]
email: systemtak@gmail.com
2009
Borrar el cdigo generado por la plantilla, enfocaremos Nuestro Procedimiento Almacenado a cuestiones muy
bsicas con fines didcticos.
sp_tbPaisListar (Procedimiento que la usaremos para rellenar un lista de Pases) >> En SQL Server Ejecutar
con F5 (ejecuta la consulta)
create procedure sp_tbPaisListar
as
begin
set nocount on;
select * from tb_pais order by NombrePais
end
go
Nota: Haremos un ingreso manual de valores para la tabla tb_pais (Mexico, Ecuador, Chile, Peru)
sp_tbProfesionListar (Procedimiento que la usaremos para rellenar un lista de Profesiones)
create procedure sp_tbProfesionListar
as
begin
set nocount on;
select * from tb_profesion order by NombreProfesion
end
go
Nota: Haremos un ingreso manual de valores para la tabla tb_profesion (Medicina, Ingeniera, Administracin,
Economa)
sp_tbUsuarioListar (Procedimiento que la usaremos para rellenar un lista de Usuarios)
create procedure sp_tbProfesionListar
as
begin
set nocount on;
select * from tb_profesion order by NombreProfesion
end
go
Nota: Haremos un ingreso manual de valores para la tabla tb_usuario.
Nick
Admin
Invitado
Password
password
guest
http://systemtak.blogspot.com
Nombres
Administrador del Sistema
Invitado a Usar el Sistema
[10/36]
email: systemtak@gmail.com
2009
[11/36]
email: systemtak@gmail.com
2009
end
[12/36]
email: systemtak@gmail.com
2009
http://systemtak.blogspot.com
[13/36]
email: systemtak@gmail.com
2009
Click en Next
http://systemtak.blogspot.com
[14/36]
email: systemtak@gmail.com
2009
Considerando que hasta aqu todo va muy bien, iniciaremos con la interfaz del usuario, diseos de los
formularios centrndonos bsicamente en la tabla (tb_contacto).
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
2009
frmPrincipal
Text
Sistema Agenda
WindowState
Maximized
IsMDIContainer
True
MaximizeBox
False
MenuStrip
Name
mnuPrincipal
mnuInicio
SubMenu
mnuContacto
SubMenu
mnuSalir
SubMenu
StatusTrip1
ToolStripStatusLabel
Tsslusuario
Text
Usuario
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
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
http://systemtak.blogspot.com
[17/36]
email: systemtak@gmail.com
2009
http://systemtak.blogspot.com
[18/36]
email: systemtak@gmail.com
2009
<connectionStrings>
<add name="sysAgenda.My.MySettings.cnnSysAgenda" connectionString="Data
Source=sistemas02\SQLEXPRESS;Initial Catalog=sysAgenda;User ID=sa;Password=inicio"
providerName="System.Data.SqlClient" />
</connectionStrings>
[19/36]
email: systemtak@gmail.com
2009
End Class
http://systemtak.blogspot.com
[20/36]
email: systemtak@gmail.com
2009
[21/36]
email: systemtak@gmail.com
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
2009
http://systemtak.blogspot.com
[23/36]
email: systemtak@gmail.com
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
http://systemtak.blogspot.com
[24/36]
email: systemtak@gmail.com
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
[25/36]
email: systemtak@gmail.com