Sei sulla pagina 1di 61

Mdulo II Desarrollo de Sistemas

Empresariales

CURSO DE ACTUALIZACION 2010


Este material ha sido
diseado para el desarrollo de
aplicaciones basadas en la
plataforma.NET Framework,
utilizando VB.NET como
lenguaje.
Este cubre tanto
aspectos bsicos como
avanzados, abordando el
lenguaje, programacin
orientada a objetos (OOP), el
entorno de desarrollo de
aplicaciones (IDE) de Visual
Studio.NET, etc.
Se trata de un material
de muy amplio contenido en
documentacin, adems de
numerosos ejemplos listos para
ser implementados desde Visual
Studio.NET con conexin a base
de datos.
Las Guas se
desarrollaran durante cada
sesin de laboratorio y sern
explicadas paso a paso.
El presente material ha sido
diseado
Licenciada
por la
Gina
Docente
Huertas
Modulo II
Camacho Profesora
Especialidad de Computacin E
de la
Desarrollo de Sistemas
Informatica del
Superior Tecnolgico Pblico
Instituto Empresariales
ARGENTINA
Lic. Gina Huertas Camacho

Lic. Gina Huertas Camacho Pag # 1

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

INTRODUCCION
Este material ha sido elaborada para el desarrollo de las
sesiones de Laboratorio correspondiente al Curso de Actualizacion en la
especialidad de Computacin e Informtica Del ISTPArgentina.

En cada sesin de clase se publicara en el website material


educativo como separatas, diapositivas, videos tutoriales para
complementar cada tema.

As mismo durante el desarrollo de cada clase se manejara este


material con ejemplos prcticos que han sido recopilados de diversas
aplicaciones que he desarrollado durante estos aos.

Para Mayor informacin sobre cada tema a desarrollar durante el


semestre consulta siempre el espacio colaborativo
http//sites.google.com/site/istpaginahc

Espero que este mdulo sirva de ayuda y asimismo cumpla con la


finalidad para lo cual la se diseo el cual es que los conocimientos se
transmitan hacia todo aquel que desea aprender . Si Tienes Alguna
duda respecto al material no Dudes en preguntarme directamente o
enviarlo al correo ghuertasc_istpa@hotmail.com. y recuerda El Que
Aprende y no practica lo que aprende es como el que ara y ara y nunca
siembra, mucha suerte en el logro de tus metas.

Lic Gina Huertas Camacho


Prof. De Computacin Turno-Diurno

Lic. Gina Huertas Camacho Pag # 2

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Contenido
Captulo I Entorno de Programacin Visual Basic .NET

1.1 Qu es Visual Basic .NET? . Entorno de Desarrollo. .NET Framework. .NET

1.2 Programacin Orientada a Eventos. Evento. Manejador de Eventos

1.3 Procedimientos. mbito de las variables

1.4 Controles Button (CommandButton) , Label, TextBox, DateTimePicker, LinkLabel.

1.5 Funciones Intrinsecas, Funciones Financieras, Funciones de Tiempo y Hora.

1.6 Variables. mbito de las Variables

1.7 Sentencias de Control : Do .. Loop

1.8 Funcin IsNumeric, Funcin Trim, LTrim, RTrim

Captulo II . Acceso a Base de Datos


2.1 ADO.NET
2.2 Arquitectura de ADO.NET
2.3 Clase connection, DataAdapter, DataSet
2.4 Sintaxis de Instrucciones Principales

Captulo III Procedimientos almacenados


3.1 Concepto
3.2 Ventajas
3.3 Tipos
3.4 Creacin de Procedimientos Almacenados(Sp)
3.5 Invocacin de Sp

Captulo IV Tablas Relacionadas


4.1 Modelo Entidad Relacin
4.2 Consultas de Seleccin
4.3 Producto Cartesiano e InnerJoin

Lic. Gina Huertas Camacho Pag # 3

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

CAPITULO I
EL ENTORNO DE PROGRAMACION

Microsoft Visual Studio 2008


Es el nuevo Entorno Integrado de Desarrollo (tambin conocido como IDE por sus
siglas en ingls, Integrated Development Enviroment), que Microsoft ha desarrollado para la
creacin de Software enfocado a su Sistema Operativo Microsoft Windows Vista y realizar
aplicaciones para trabajar con su paquetera Microsoft Office 2007.

Qu tiene de novedoso Microsoft Visual Studio 2008?


Microsoft Visual Studio 2008 viene con muchas mejoras y funcionalidades, se enlistarn a
continuacin las ms importantes.
Utilizar el Framework .NET 3.5 y poder programar para las versiones anteriores (2.0, 3.0).
1.8.1 Conjuncin con XAML (se pronuncia zammel y significa Extensible Application
Markup
Language por sus siglas en ingls).
Un diseador para Windows Presentation Foundation y Workflow Foundation que son parte
del Framework .NET 3.0.
IntelliSense para JavaScript.
El nuevo Lenguaje LINQ (significa Language Integrated Query) siendo ste un agregado a
los lenguajes Visual Basic y
Visual C# para la realizacin
de consultas SQL.
Elegir el Framework .NET con
el cual se desea trabajar
ahora es una funcionalidad de
Microsoft
Visual Studio 2008. A
continuacin una imagen para
dejarlo ms claro.

Lic. Gina Huertas Camacho Pag # 4

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

1.1 Qu es Visual Basic .NET


Al ingresar por primera vez a
VisualBasic.Net, observar la siguiente
pantalla

En esta pantalla se muestra


principalmente la pgina de inicio con
los proyecto s recientes y las opciones
para Abrir o Crear un nuevo proyecto.
Tambin se muestrea el cuadro de
herramientas y el explorador de
soluciones, pero , vacos porque no
hay ningn proyecto activo.

Para visualizar todos los


componentes de Visual Basic.Net
deber crear una Aplicacin.
En el cuadro de dialogo
seleccione Windows application

En el cuadro de dialogo Name


escriba alumnos y pinche el
botn OK. El IDE
inmediatamente creara el
proyecto y nos mostrar una
esto:
Desde la pgina de inicio de
Visual Studio .NET, podemos
abrir proyectos, crear nuestro

Lic. Gina Huertas Camacho Pag # 5

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

propio perfil y establecer nuestras preferencias. Tambin podemos leer las ltimas noticias de los
desarrolladores de Microsoft, participar en las comunidades online de .NET, realizar bsquedas en
Microsoft MSDN Library y descargar actualizaciones de software.
Podemos iniciar un nuevo proyecto o abrir un proyecto existente desde la Pgina de inicio.
Abrir un nuevo proyecto
Haga clic en Inicio en la lista del lado izquierdo de la pgina (si no est ya seleccionado) y, a
continuacin, haga clic en Nuevo Proyecto.
Abrir un proyecto existente
Haga clic en Inicio en la lista del lado izquierdo de la pgina y, a continuacin, haga clic en Abrir
Proyecto.

El Explorador de soluciones nos permite visualizar


archivos y realizar tareas de administracin de archivos
en una solucin o en un proyecto. Una nica solucin
basada en Visual Basic .NET y sus proyectos aparecen
en una lista jerrquica que proporciona informacin
actualizada sobre el estado de nuestra solucin,
proyectos y archivos.
Trminos y definiciones Una solucin es un recipiente
para proyectos y elementos de solucin que pueden
incluirse en una aplicacin. Normalmente, una solucin contiene uno o ms proyectos relacionados.
Un proyecto es un recipiente dentro de una solucin que se utiliza para administrar, generar y depurar
lgicamente los elementos de proyecto que constituyen nuestra aplicacin.

Archivos de proyectos y soluciones


Visual Studio .NET soporta numerosos tipos de archivos y sus extensiones de archivo asociadas. La
siguiente tabla describe algunos tipos de archivos habituales especficos para las soluciones basadas
en Visual Basic .NET.

Lic. Gina Huertas Camacho Pag # 6

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

El Entorno de Desarrollo recibe el nombre de Entorno de Desarrollo de Microsoft Visual


Studio .NET. Este entorno es personalizable y contiene todas las herramientas necesarias para
construir programas para Microsoft Windows.
El Entorno de Desarrollo contiene mltiples ventanas y mltiples funcionalidades y es por
consecuencia llamado un entorno de desarrollo integrado (integrated development environment
IDE).
La ventana central es la ventana de diseo (Designer Window), la cual contiene el formulario a
desarrollar.
La caja de herramientas (ToolBox) se localiza de lado izquierdo. En el extremo derecho tenemos la
ventana de explorador de soluciones (Solution Explorer).
La ventana de propiedades (Properties window) contiene tres partes:

La parte superior contiene un combo box que muestra el nombre y la clase del objeto
seleccionado.

La parte media contiene la lista de propiedades del objeto seleccionado, de lado derecho
contiene un conjunto de cajas para ver y editar el valor de la propiedad seleccionada.

La parte inferior es un cuadro descriptivo que proporciona una breve descripcin de la


propiedad seleccionada.

Lic. Gina Huertas Camacho Pag # 7

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Iniciar un Proyecto
Para iniciar un nuevo proyecto, de clic en la opcin Projects y clic en el botn [New Project], esta
accin abre una ventana donde se indicar el archivo a abrir, los proyectos Visual Basic .NET tiene la
extensin .vbproj. Una vez que abre el projecto si la pgina de inicio estaba visible continuar as y
en el Explorador de Soluciones (Solution Explorer) se cargan los archivos correspondientes al
proyecto.
En Visual Basic .NET existen dos archivos:

Un archivo de projecto .vbproj, el cual contiene informacin especfica para una determinada
tarea de programacin.

Un archivo de solucin .sln, el cual contiene informacin relacionada con uno o ms


proyectos. Este tipo de archivo puede administrar varios projectos relacionados entre s y
son similares a los archivos de grupos de proyecto (.vbg) en Visual Basic 6

Si la solucin tiene un nico proyecto, abrir el archivo de proyecto .vbproj o el archivo de solucin
.sln tiene el mismo resultado, pero si la solucin es multiproyecto entonces deber abrir el archivo de
solucin.
Los formularios en Visual Basic .NET tienen la extensin .vb. Se mostraran a manera de
pestaas la pgina de inicio, la vista de diseo y el cdigo del formulario.

.NET Framework
Visual Studio .NET tiene una nueva herramienta que comparte con Visual Basic, Visual C++, Visual
C#, etc. llamada .NET Framework que adems es una interfaz subyacente que forma parte del propio
sistema operativo Windows.
La estructura de .NET Framework es por Clases mismas que puede incorporar a sus proyectos a
travs de la instruccin Imports, por ejemplo una de sus Clases es System.Math la cual soporta los
siguientes mtodos
Mtodo Descripcin

Abs(n) Calcula el valor absoluto de n

Atan(n) Calcula el arcotangente de n en radianes

Cos(n) Calcula el coseno del ngulo n expresado en radianes

Exp(n) Calcula el constante de e elevada a n

Lic. Gina Huertas Camacho Pag # 8

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Sign(n) Regresa -1 si n es menor que cero, 0 si n es cero y +1 si n es mayor a cero

Sin(n) Calcula el seno del ngulo n expresado en radianes

Sqr(n) Calcula la raz cuadrada de n.

Tan(n) Calcula la tangente del ngulo n expresado en radianes

La declaracin de Imports debe ser a nivel de formulario:

Imports System.Math
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs)-
Handles MyBase.Load
txtOutput.Text += Sqrt(9) & vbNewLine
.NET
La biblioteca de clases .NET es una biblioteca de clases incluida en el Microsoft .NET Framework y
est diseada para ser la base sobre las cuales las aplicaciones .NET son construidas.
Namespaces
La biblioteca .NET contiene un nmero considerable de clases con cdigo reutilizable, para ayudar a
controlar esta complejidad .NET utiliza namespaces, colecciones de clases relacionadas.
Nuevo Proyecto
De clic en el botn [New Project] o File/New/Project, como tipo de proyecto seleccione Visual Basic
Project, como plantilla seleccione Windows Application, por ltimo indique la ubicacin donde
desea almacenar su proyecto. Al dar clic Visual Studio configura el entorno de desarrollo y crea un
directorio con el mismo nombre que especifico para la aplicacin.

Aplicacin Windows Ejecutable


Las aplicaciones Windows creadas con Visual Basic .NET tienen la extensin .exe mismas que
podrn ser ejecutadas en cualquier equipo que tenga instalado Microsoft Windows. Visual Basic .NET
instala de de manera automtica los archivos de soporte, incluyendo las bibliotecas de vnculos
dinmicos y archivos de .NET framework.
Visual Studio puede crear dos tipos de archivos ejecutables:

Debug - Compilacin de depuracin, se utiliza cuando se prueba y depura un programa


(Default).

Lic. Gina Huertas Camacho Pag # 9

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Release - Versin de edicin, se utiliza cuando se termina el programa siendo esta una
versin optimizada de menor tamao

1.2 Programacin Orientada a Eventos


Visual Basic .NET soporta la Programacin Orientada a Eventos en la cual las aplicaciones
reconocen y responden a eventos.

Evento
Un Evento es una accin o acontecimiento reconocido por algunos objetos para los cuales es
necesario escribir el cdigo para responder a dicho evento. Los eventos pueden ocurrir como
resultado de una accin del usuario (onClick), por invocacin a travs de cdigo o disparados por el
sistema (Timer Tick Event).

Manejador de Eventos
Un Manejador de Eventos contiene cdigo que responde a eventos particulares. Un desarrollador
disea cuidadosamente sus aplicaciones determinando los controles disponibles para el usuario y los
eventos apropiados asociados a estos controles, entonces, el desarrollador escribe el cdigo para
integrar los eventos consistentes con el diseo de la aplicacin.

1.3 Procedimientos
Un procedimiento es un conjunto de sentencias que realizan una accin lgica. Existen tres tipos de
procedimientos en Visual Basic .NET:

Event procedures/Event handler, procedimiento que contiene cdigo que es ejecutado en


respuesta a un evento. Cuando el evento es disparado el cdigo dentro del manejador de
eventos es ejecutado.

Visual Basic .NET para los manejadores de eventos utiliza una convencin estndar la cual
combina el nombre del objeto seguido de un guin bajo y el nombre del evento.
Private|Public Sub objeto_Evento(parmetros) handles Objeto.Evento
sentencias
End Sub
Cada manejador de eventos provee dos parmetros, el primer parmetro llamado sender
provee una referencia al objeto que dispara el evento, el segundo parmetro es un objeto cuyo tipo de
dato depende del evento que es manejado. Ambos parmetros son pasados por valor.
Si un parmetro es declarado por referencia ByRef el parmetro apunta al argumento actual. Por
default los argumentos se pasan por valor ByVal el parmetro es una copia local del argumento.

Lic. Gina Huertas Camacho Pag # 10

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Sub procedures, contiene cdigo que el desarrollador crea para realizar una accin lgica.

Function procedures, contiene cdigo que el desarrollador crea para realizar una accin
lgica y regresa un valor, el valor que una funcin envia de regreso al programa que lo invoco
es llamado valor de regreso. Para regresar un valor se utiliza la sentencia Return.

mbito de las variables


Cuando es declarada una variable tambin se define su mbito, el mbito de una variable es la
regin de cdigo en la cual la variable se referencia directamente. Existen dos tipos de mbitos de las
variables:

Local, es una variable declarada dentro de un procedimiento y se destruye cuando el


procedimiento termina de ejecutarse.

Mdular, es una variable declarada a nivel mdulo fuera de cualquier procedimiento y son
declaradas en la parte superior del Editor de Cdigo arriba del primer procedimiento, este
espacio es llamado Seccin de Declaraciones Generales (General Declaration Section).

Convenciones para el nombre de los controles


Es recomendable utilizar convenciones para el nombre de los controles, es decir, que al
momento de dar lectura al cdigo sea fcil de entender y comprender, por lo que el establecimiento
de convenciones ayuda a identificar que control se empleo, por ejemplo, si emplea un control botn
emplee siempre como prefijo btn despus compltelo con un nombre descriptivo acorde a la
funcionalidad que este tendr.

Control Prefijo

Button Btn

Label Lbl

PictureBox Pic

Timer Tmr

Text Box Txt

List Box Lst

Combo Box Cbo

Check Box Chk

Radio Button Rad

Lic. Gina Huertas Camacho Pag # 11

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

GUIA DE LABORATORIO #01

Tipos Bsicos del .Net Framework


Objetivos
Luego de completar este laboratorio, el estudiante ser capaz de:

Identificar el tipo System.Object


Crear Clases, Mtodos y propiedades
Realizar conversiones de datos
Manejar interface con diversos tipos de datos

Mi_Primera_Aplicacion
Agregar un mdulo que contenga un saludo en el procedimiento main
Module Module1
Sub Main()
Console.WriteLine("Hola Mundo")
Console.ReadLine()
End Sub

End Module
Ahora agregar un modulo que calcule el promedio de notas
Module Module2
Sub main()
Dim nota1, nota2, nota3, susti, promedio As Single
Console.WriteLine("Ingrese Notas")
Console.WriteLine("Ingrese 1 nota")
nota1 = Console.ReadLine()
Console.WriteLine("Ingrese 2 nota")
nota2 = Console.ReadLine()
Console.WriteLine("Ingrese 3 nota")
nota3 = Console.ReadLine()
promedio = (nota1 + nota2 + (nota3 * 2)) / 4
Console.WriteLine(promedio)

Lic. Gina Huertas Camacho Pag # 12

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

If promedio >= 10.5 And promedio < 21 Then


Console.WriteLine("Aprobado")
Console.WriteLine(promedio)
End If
Console.ReadLine()
End Sub
End Module

FrmBoleta

Disear un formulario que permita calcular el promedio de notas y si aprob o no el alumno, solo indica que
aprueba si el promedio es mayor o igual a 14.
Adems debe considerar:
1. Validaciones: solo ingresar textos o nmeros segn sea el caso
2. Pasar de una casilla a otra al presionar Enter
3. Mostrar el promedio redondeado

Propiedad
Readonly =true
Mensaje label

El desarrollo de esta y otras aplicaciones modelos se realizara durante la sesin de Laboratorio

Lic. Gina Huertas Camacho Pag # 13

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

1.4 CONTROLES

Control Button (antes CommandButton)


El control CommandButton en Visual Basic .NET recibe el
nombre de Button, la propiedad Caption ahora recibe el
nombre de Text, ocurre lo mismo para el caso del control
Label.
Control Label
El control Label ahora su propiedad Caption recibe el
nombre de Text y por ejemplo la antes propiedad Alignment
ahora recibe el nombre de TextAlign la cual tiene ms
opciones de alineacin.
Control TextBox
El control TextBox tiene una capacidad de almacenamiento
de 32 Kbytes de texto.
Control DateTimePicker
El control DateTimePicker muestra por defecto la fecha
actual que es posible modificar a travs de su propiedad
value.
Este control puede mostrar fechas u horas, si desea mostrar horas utilice:
nombreControl.Format = DateTimePickerFormat.Time
Control LinkLabel
A travs de este control es posible abrir el navegador por default y acceder a un URL especifico:
LinkLabel1.LinkVisited = True
Controles Anteriores y Otros Controles
Es posible utilizar antiguos controles ActiveX y utilizarlos con algunas limitaciones, teniendo como
restriccin tcnica que debern estar en un contenedor, por ejemplo de clic con el botn derecho en
el separador Windows Forms seleccione la opcin Add/Remove items y aparecer una ventana
donde dar clic en el folder COM Components y eligira el componente que desea agregar.

Lic. Gina Huertas Camacho Pag # 14

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Control MainMenu
El Control MainMenu agrega mens a un programa, el man se configura mediante sus propiedades.
Para agregar un men simplemente seleccione el control MainMenu el cual de manera automtica se
ajusta al tamao del formulario, este men es de fcil manipulacin pues basta con escribir el nombre
para las opciones y a travs del men popup es posible modificarlo.
Para agregar cdigo a cada opcin del men basta con dar doble clic sobre la opcin deseada:

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _


Handles MenuItem2.Click
MsgBox("opcin 1_1")
End Sub
Control ListBox
El control ListBox hace visible una lista de items, donde el usuario puede seleccionar items en la lista
utilizando los clics del mouse.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) -
LstBox.Items.Add("Red")
LstBox.Items.Add("Green")
LstBox.Items.Add("Blue")
End Sub
Private Sub LstBox_SelectedIndexChanged(ByVal sender As System.Object
LstBoxOut.Items.Add(LstBox.SelectedItem)
End Sub

Private Sub LstBoxOut_SelectedIndexChanged(ByVal sender As System.Object


LstBoxOut.Items.Remove(LstBoxOut.SelectedItem)
End Sub
Control CheckBox
Un control CheckBox indica cuando un valor particular esta encendido o apagado, verdadero o falso,
si o no, puede ser utilizado tambin para seleccionar mltiples items de una lista de opciones.
Control RadioButton
Un control RadioButton permite al usuario seleccionar slo un item de una lista de opciones.

Lic. Gina Huertas Camacho Pag # 15

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Control Windows Media Player


El control Windows Media Player reproduce video y archivos de sonido en distintos formatos,
incluyendo MPEG, AVI, WAV y MIDI.
Este control no es parte de la caja de herramientas estndar, para agregarlo seleccione Add/Remove
ToolBox Items/COM/Windows Media Player
Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Dim OFD As New OpenFileDialog
OFD.ShowDialog()
wmp.openPlayer(OFD.FileName)
End Sub
1.5 Funciones Intrnsecas
Val, regresa el nmero contenido en un argumento, se detiene en el primer caracter no
numrico.
CDbl, regresa un valor double si el argumento puede ser convertido a double
IsNumeric, regresa True si el argumento puede ser convertido a double
Rnd, regresa un valor random entre 0 y 1
Abs, regresa el valor absoluto de un nmero (es necesario importar System.Math)
Int, regresa la parte entera de un nmero
FormatCurrency, regresa un string formateado a moneda y redondeado a dos decimales
Formar(expr,str), convierte una expresin a un formato string especfico.
Funciones Financieras
Visual Basic .NET provee funciones financieras como Pmt(Rate,Nper,PV) para determinar
pagos mensuales y FV(Rate,Nper,Pmt) para determinar el valor futuro de una anualidad
basada en pagos fijos periodicos e intereses de tasa fija.
Funciones de Tiempo y Hora
En Visual Basic .NET existen funciones a travs de las cuales es posible manipular el tiempo y la
hora:
TimeString, regresa la hora actual del sistema.
DateString, regresa la fecha actual del sistema.
Now, regresa un valor codificado que representa la hora y fecha actual del sistema.
Hour(hora), regresa el nmero de hora actual del sistema.
Minute(hora), regresa el nmero de minuto actual del sistema.

Lic. Gina Huertas Camacho Pag # 16

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Second(hora), regresa el mmero del segundo actual del sistema.


Day(fecha), regresa el nmero del da actual del sistema.
Month(fecha), regresa el nmero de mes actual del sistema.
Year(fecha), regresa el ao actual del sistema.
Weekday(fecha), regresa el nmero que representa el da de la semana. (1 = Domingo, 2 =
Lunes, ...).
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles Button1.Click
txtTimeString.Text = TimeString
End Sub
Cuadros de Dialogo
Visual Basic .NET cuanta con siete tipos de cuadro de dialogo que facilitan la construccin de interfaz
de usuario:

OpenFileDialog, obtiene unidad, nombre de directorio y nombre de un archivo existente.

SaveFileDialog, obtiene unidad, nombre de directorio y nombre para un archivo nuevo.

FontDialog, para que el usuario seleccione una configuracin para la fuente.

ColorDialog, para que el usuario seleccione un color de una paleta.

PrintDialog, para que el usuario defina opciones de impresin

PrintPreviewDialog, muestra al usuario una vista previa de impresin.

PageSetupDialog, para que el usuario controle las opciones de configuracin de pgina.

1.6 Tipos de Variables


Los tipos de datos numericos en Visual Basic .NET se agrupan en dos categorias: enteros y de punto
flotante.
Los tipos de datos numericos a su vez se agrupan en, Byte, Short, Integer y Long.
Los tipos de datos de punto flotante son Single y Double.
Los tipos de datos Char almacenan un slo caracter en formato Unicode.
Los tipos de datos String almacenan una secuencia de caracteres Unicode.
Unicode es un sistema internacional de codificacin de 16-bit que cubre valores para ms de 45,000
caracteres. Un caracter Unicode es almacenado como un valor numerico sin signo de 16-bit, de 0 a

Lic. Gina Huertas Camacho Pag # 17

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

65535. Los primeros 128 (0-127) caracteres Unicode corresponden al conjunto de caracteres ASCII.
Del 32 al 127 corresponden a caracteres alfanumericos y simbolos para un teclado US. Del 128 al
255 representan caracteres especiales.
El tipo de dato Boolean es un valor sin signo el cual es interpretado como falso o verdadero.
El tipo de dato Date almacena fechas y tiempo, el rango de valores posible es del 12:00:00 AM Enero
1 al 31 de Diciembre del 9999 11:59:59 PM. Los valores para las fechas deben ser encerrados entre
el signo # y con el formato m/d/aaaa, por ejemplo #12/7/1971#.
El tipo de dato Object es el tipo de dato universal en Visual Basic .NET y es tambin el tipo de dato
por default para las variables que son declaradas sin especificar su tipo de dato.
Tipos de Datos Definidos por el Usuario : Structure
Visual Basic permite al desarrollador crear sus propios tipos de datos, esto es posible.NET a travs
del empleo de la instruccin Structure, ejemplo:
Constantes
Una constante es aquella que almacena un valor que no es posible cambiar durante la ejecucin del
programa.
Se recomienda que el nombre de una constante sea escrito en su totalidad en maysculas.
Const PI As Double = 3.14159265
Operadores
Visual Basic .NET dispone de los siguientes operadores matemticos:
Operador Descripcin

+ Suma

- Resta

* Multiplicacin

/ Divisin

\ Divisin entera (parte entera de la divisin)

Mod Residuo (resto de la divisin entera)

^ Exponenciacin (elevar a una potencia)

&,+ Concatenacin de Cadenas

Lic. Gina Huertas Camacho Pag # 18

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Dim as
Visual Basic .NET no permite el uso del tipo de dato Variant y todas las variables debern ser
declaradas por las instrucciones Dim nombreVarible as tipoDato.
Dim es la abreviatura de Dimensin, que sirve para reservar espacio para la variable. La sentencia
Dim especifica el nombre de la variable y su tipo de dato asociado.
Una novedad en Visual Basic .NET es la declaracin e inicializacin de variables, ya que es posible
hacer esto al mismo tiempo:
Dim nombreVariable as tipoDato = valorInicial
Si no se define un tipo de dato para la variable, entonces asume el tipo de dato por default
que es Object. Es posible declarar variables como se hacia en Visual Basic 6, si emplea la instruccin
Option Explicit Off.
Visual Basic .NET incorpora la instruccin Option Strict si desea que los tipos de datos en las
operaciones sean del mismo tipo y evitar la conversin y perdida de datos.

mbito de las Variables

DIM Local, visible nicamente a nivel procedimiento.

PUBLIC Pblica y al inicio del mdulo, visible nicamente a nivel proyecto.

Nota
A travs de la funcin InputBox es posible manipular la entrada de datos por parte del usuario,
pudiendo almacenar en una variable los datos ingresados por este.

1.7 Sentencias de Control


A manera de resumen recordaremos que For se utiliza cuando se conoce de antemano el nmero de
iteracciones a ejecutarse. Do se utiliza cuando no se conoce de antemano el nmero de iteraciones a
ejecutarse. Si al menos debe ejecutarse 1 iteracin es necesario colocar la expresin condicional al
final del ciclo. Evite ciclos infinitos, para ello asegurese de que estos ciclos tengan una expresin
condicional de salida. Utilice Until a diferencia de While cuando requiera que la expresin condicional
sea la contraria, por ejemplo con While la expresin condicional podra ser A <> B y con Until podra
ser A = B.
La nica sentencia de control que tiene un cambio relevante sintacticamente es While ya que antes
se escribia While ... Wend ahora es necesario escribir While ... End While.

Lic. Gina Huertas Camacho Pag # 19

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Visual Basic .NET incorpora 2 nuevos operadores lgicos para utilizarlos en las sentencias de
control, a continuacin se mostrar la tabla de operadores lgicos anteriores y nuevos:
Operadores Lgicos Descripcin

And Las 2 expresiones deben ser verdaderas

Or Alguna de las 2 expresiones es verdadera

Not Negacin del resultado de la expresin

Xor Si 1 y slo 1 de las expresiones es verdadera

AndAlso Si la primer y segunda condicin son verdaderas

OrElse Si la primer o segunda condicin es verdadera


Los nuevos operadores lgicos AndAlso y OrElse reciben el nombre de sistema de corto-circuito.
Dim nCalificacion As Integer = 0
If nCalificacion <= 0 AndAlso nCalificacion / 0 Then
MsgBox("Error de lgica")
Else
MsgBox("Continuar clculo")
End If
Do ... Loop
La sentencia de control Do ... Loop es la sentencia general iterativa, la cual permite ejecutar
repetitivamente un grupo de sentencias hasta que una condicin sea cumpla. Existen cuatro
versiones de la sentencia Do ... Loop :

Do While condicin
sentencias
Loop
Do Until condicin
sentencias
Loop
Do
sentencias
Loop While condicin
Do
sentencias

Lic. Gina Huertas Camacho Pag # 20

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Loop Until condicin


Exit
La sentencia Exit permite salir inmediatamente de una decisin, ciclo o procedimiento.
Control Timer
A travs del control Timer es posible ejecutar una instruccin en un intervalo de tiempo especifico,
este Timer se activa estableciendo su propiedad Interval con el valor True y se ejecutar hasta que
por medio de la accin del usuario lo detenga o se desactive el temporizador.
Cuando agrega un Timer este no es visible en el formulario pero si en la parte inferior de la pantalla
(Bandeja de Componentes), justo debajo del formulario.
En Visual Basic .NET el nombre del control cambia su nombre por Timer_Tick
Por ejemplo si desea que se ejecute una accin cada segundo, ser necesario cambiar el valor de la
propiedad Interval a 1000 milisegundos.
Para iniciar la ejecucin del propio Timer es necesario establecer el valor de la propiedad Enabled a
True.

1.8 FUNCION IS NUMERIC, TRIM, LTRIM,RTRIM

Funcin IsNumeric
La funcin IsNumeric() regresa un valor booleano el cual indica cuando una expresin puede ser
evaluada como un nmero. Esta funcin es bsica de una aplicacin para validar la entrada correcta
de datos de tipo numrico.
Trim, LTrim, RTrim
Visual Basic .NET provee mecanismos para la eliminacin de espacios en blanco contenidos en un
string a travs de las siguientes funciones:

LTrim, regresa un string que contiene una copia de un string especifico al cual se eliminaron
los espacios en blanco contenidos al inicio del string.

RTrim, regresa un string que contiene una copia de un string especifico al cual se eliminaron
los espacios en blanco contenidos al final del string.

Trim, regresa un string que contiene una copia de un string especifico al cual se eliminaron los
espacios en blanco contenidos al inicio y al final del string.

Lic. Gina Huertas Camacho Pag # 21

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Evento KeyPress
El evento KeyPress es utilizado para capturar la tecla digitada por el usuario. Este evento distingue
entre letras maysculas y minsculas. El segundo argumento del este evento expone dos
propiedades: Handled y KeyChar, la propiedad KeyChar es el caracter correspondiente a la tecla
digitada. La propiedad Handled es un valor booleano, si se establece este valor como True entonces
indicamos al formulario que no procese el evento.
El siguiente ejemplo evita que se digite un nmero:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal _
If IsNumeric(e.KeyChar) Then e.Handled = True
End Sub
El siguiente ejemplo vlida que la entrada unicamente acepte letras (permite borrar la entrada):
Private Sub txtLetras_KeyPress(ByVal sender As Object, ByVal _
If (Asc(e.KeyChar)) >= 65 And (Asc(e.KeyChar)) <= 90 Or _
(Asc(e.KeyChar)) >= 97 And (Asc(e.KeyChar)) <= 122 Or _
(Asc(e.KeyChar)) = System.Windows.Forms.Keys.Back Then
e.Handled = False
Else
e.Handled = True
End If
End Sub

Lic. Gina Huertas Camacho Pag # 22

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

GUIA DE LABORATORIO #02


Componentes en .net
Objetivos
Luego de completar este laboratorio, el estudiante ser capaz de:
Crear Clases, Mtodos y propiedades
Realizar conversiones de datos

Frm_Metodos

Crear una interfaz que permita calcular el rea de una figura


geomtrica, mediante un mtodo
Module Module1
'METODO
Function Area(ByVal height As Single, ByVal width As Single)
As Single
Area = height * width
End Function
End Module
Private Sub Calcular_Click(ByVal sender As System.Object, ByVal e As Dim calculo As Single
calculo = Area(TxtAlto.Text, TxtAncho.Text)
MsgBox("El area es :" + calculo.ToString)
End Sub

Frm_Estructura

. CREAR UNA ESTRUCTURA PARA LA CLASE CARRO ,CON


LOS SIGUIENTES CAMPOS MARCA,MODELO,
PRECIO,FECHA
EN EL FORMULARIO SECCION DE DECLARACIONES
Public Class FrmEstructura
Public Structure CarInfo
Dim Make,model,price As String
Dim fecha As Date
End Structure

Lic. Gina Huertas Camacho Pag # 23

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Dim myCar As CarInfo


myCar.Make = "Jeep" : myCar.Model = "Cherokee"
myCar.Price = 27999: myCar.fecha = #6/23/2000# : Label6.Text = myCar.Make:
Label7.Text = myCar.Model Label8.Text = myCar.Price: Label9.Text = myCar.fecha
End Sub

FrmBoleta

Crear una aplicacin que permita realizar las 4 operaciones


(+,-,*,/)a partir de 2 nmeros que ingrese, implemente clases,
propiedades y mtodos
Public Class Aritmetica 'la prop resultado va a ser de solo lectura
'esta clase nos permite realizar las 4 operaciones Public ReadOnly Property Resullado() As Single
basicas Get
#Region "Campos" Return xResult
'crear mienbros privados:campos End Get
Private xNum1 As Single End Property
Private xNum2 As Single #End Region
Private xResult As Single
#End Region #Region "Metodos"
#Region "Propiedades" 'definir metodos
'definir propiedades, como hay 3 miembros privados Public Sub Suma()
tendra q haber 3publicos xResult = xNum1 + xNum2
Public Property Numero1() As Single End Sub
Get Public Sub Resta()
Return xNum1 xResult = xNum1 - xNum2
End Get End Sub
Set(ByVal value As Single) Public Sub Multiplicacion()
xNum1 = value xResult = xNum1 * xNum2
End Set End Sub
End Property Public Sub Division()
Public Property Numero2() As Single xResult = xNum1 / xNum2
Get End Sub
Return xNum2 #End Region
End Get End Class
Set(ByVal value As Single)
xNum2 = value
End Set
End Property

Lic. Gina Huertas Camacho Pag # 24

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

CAPITULO II

ACCESO A BASE DE DATOS

2.1 ADO.NET
ADO .NET es la nueva versin del modelo de objetos ADO (ActiveX Data Objects), es decir, la
estrategia que ofrece Microsoft para el acceso a datos. ADO .NET ha sido ampliado para cubrir todas
las necesidades que ADO no ofreca, y est diseado para trabajar con conjuntos de datos
desconectados, lo que permite reducir el trfico de red. ADO .NET utiliza XML como formato universal
de transmisin de los datos.
ADO.NET forma parte del tercer nivel del conjunto de objetos Del .NET Framework ADO.NET
consiste en un conjunto de clases que permiten a las aplicaciones .NET conectar con fuentes de
datos (normalmente bases de datos relacionales), ejecutar comandos y manipular los datos.

2.2 ARQUITECTURA ADO.NET


Ado.net tiene 2 grandes componentes Dataset y el Proveedor de Datos

ADO.NET DATA PROVIDERS


Un proveedor de datos(data provider) es un conjunto de clases que permiten el acceso a una Base de
datos especfica, ejecutar comandos SQL, y obtener datos.
Las clases que conforman un proveedor de datos incluyen:

Lic. Gina Huertas Camacho Pag # 25

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

- Connection
Este objeto se utiliza para establecer la conexin a un origen de datos.
- Command
Este objeto se utiliza para ejecutar sentencias SQL o procedimientos almacenados.
- DataReader
Este objeto proporciona un acceso rpido, de slo lectura, y slo hacia delante, de los datos
obtenidos de una consulta.
- DataAdapter
Este objeto realiza dos tareas. En primer lugar se puede utilizar para rellenar un DataSet (una
coleccin sin conexin, de tablas y relaciones), con informacin obtenida de un origen de datos. Y en
segundo lugar se puede utilizar para aplicar cambios a un origen de datos, de acuerdo a las
modificaciones hechas en el DataSet.

DATA SET
El DataSet ADO.NET es una representacin
de datos que reside en la memoria y que
proporciona un modelo de programacin
relacional consistente independiente de la
fuente de datos. El DataSet representa un
conjunto completo de datos que incluye
tablas, restricciones y relaciones entre las
tablas. Debido a que el DataSet es
independiente de la fuente de datos, un
DataSet puede incluir datos locales para
las aplicaciones, as como datos desde
varias fuentes.
El objeto DataSet es esencial para admitir
escenarios de datos distribuidos de
ADO.NET sin mantener una conexin. Se
puede utilizar con mltiples y distintos
orgenes de datos, con datos XML o para
administrar datos locales de la aplicacin.

Lic. Gina Huertas Camacho Pag # 26

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

2.3 Clases fundamentales En ADO.NET


Las clases en ADO.NET estn agrupadas en varios namespaces. Cada proveedor de datos tiene su
propio namespace. Las clases genricas como DataSet, se almacenan en el namespace
System.Data

Las libreras de ADO.NET se pueden utilizar de dos formas diferentes:


- Acceso a Datos Conectado (connected layer)
Nuestro cdigo base explcitamente conecta y desconecta del origen de datos. Se mantiene la
conexin abierta mientras se manipulan los datos.Los objetos que se utilizan son : Connection,
Command y DataReader.
- Acceso a Datos Desconectado (disconnected layer)
Se trabaja con una copia externa de los datos, que mantiene el objeto DataSet. Los datos se obtienen
a travs del objeto DataAdapter. Una vez obtenidos los datos la conexin al origen de datos se cierra
automticamente. Los cambios realizados en el DataSet se trasmiten al origen de datos a travs del
objeto DataAdapter.

Lic. Gina Huertas Camacho Pag # 27

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Acceso a datos conectado


La interaccin con la base de datos se realiza utilizando los objetos, Connection, Command y Data
Reader del proveedor de datos.
Pasos para conectar a una base de datos y leer los registros:
1. Configurar y abrir un objeto Connection.
2. Configurar un objeto Command, especificando el objeto Connection sobre el que se ejecuta.
3. Llamada a ExecuteReader(), del objeto Command.
4. Procesar cada registro utilizando el mtodo Read() del Data Reader.

Acceso a datos desconectado


La interaccin con la base de datos se realiza utilizando los objetos, Connection, Command y
DataAdapter.
El DataAdapter obtiene los datos del origen de datos y los pasa al objeto DataSet. (mtodo Fill)
Un DataSet contiene una copia en memoria de los datos obtenidos a travs del DataAdapter.
Los datos se modifican en el DataSet, pero no son modificados fsicamente en la base de
datos hasta que explcitamente(mtodo Update), no se le indica al DataAdapter que modifique el
origen de datos con los cambios realizados en el DataSet.

Lic. Gina Huertas Camacho Pag # 28

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

2.4 SINTAXIS DE PRINCIPALES INSTRUCCIONES EN ADO.NET


1. CONEXIN

Dim nombrevar As New SqlConnection("server=.;database=Nombre base de datos;integrated


security=true")

2. LLENAR GRILLA

Dim nombreda As New SqlDataAdapter("select * from nombretabla", varconexion)


Dim nombreds As New DataSet
nombrvarda.Fill(vards, "nombre_datatable")
DataGridView1.DataSource = nombredataset.Tables(0)
3. ENLAZAR TEXTBOX,LABEL
a. Enlazar Con position si vas a realizar navegacin

Private Sub Form1_Load(ByVal sender As System.Object,


MOSTRAR() llama al procedimiento que llena el dataset o de lo contrario haga aqu
el codigo
Textbox1.DataBindings.Add(New Binding("text", ds, "datatable del dataset.nombre
campo"))
Textbox2.DataBindings.Add(New Binding("text", ds, "datatable del dataset.campo"))
End Sub

b. Mostrando en su propiedad text el campo del datatable del dataset


Primero llene un dataset

Textbox1.text=ds.tables(ndice de tabla).rows(ndice de la fila).item(ndice del campo)


4. MANTENIMIENTO

Sub MOSTRAR()
Dim DA As New SqlDataAdapter("select * from region ", cn)
ds.Clear()
DA.Fill(ds, "reg")
DgvRegion.DataSource = ds.Tables("reg")
End Sub

Lic. Gina Huertas Camacho Pag # 29

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

1.insertar
Private Sub Btninserta_Click(ByVal sender As System.Object,
sql= "insert into region (RegionId,RegionDescription) values ( '" & TxtCodigo.Text & "','" &
TxtRegion.Text & "')"
Dim cmd As New SqlCommand(sql, cn)
cn.Open()
Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro Guardado con exito")
cn.Close()
End If
MOSTRAR()
End Sub

2. Actualizar
Private Sub BtnModifcar_Click(ByVal sender As System.Object, sql ="update region set
RegionDescription='" & TxtRegion.Text & "' where RegionId='" & TxtCodigo.Text & "'"
Dim cmd As New SqlCommand(sql, cn)
cn.Open()
Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro Guardado con exito")
cn.Close()
End If
MOSTRAR()
End Sub
3. Eliminar
Private Sub BtnEliminar_Click(ByVal sender As Object, ByVal e
sql = "delete from region where regionid='" & TxtCodigo.Text & "'"
Dim cmd As New SqlCommand(sql, cn)
cn.Open()

Lic. Gina Huertas Camacho Pag # 30

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro eliminado con exito")
cn.Close()
End If
MOSTRAR()
End Sub
End Class
5. Llenar el COMBOBOX y realizar bsquedas(consulta dinamica)

Private Sub Form3_Load(ByVal sender As


Dim da1 As New SqlDataAdapter("select * from region", CN)
da1.Fill(ds1, "reg")
ComboBox1.DataSource = ds1.Tables("reg")
ComboBox1.ValueMember = "RegionId"
ComboBox1.DisplayMember = "RegionId"
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,
TextBox1.Text = ds1.Tables(0).Rows(ComboBox1.SelectedIndex).Item(1)
End Sub
Esta es una ayuda para recordar la sintaxis

Lic. Gina Huertas Camacho Pag # 31

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Gua de Laboratorio # 04
INTRODUCCION ADO.NET
OBJETIVOS :
Despus de completar este captulo ud. Estar en condicin de:
? Disear aplicaciones con controles enlazados simples
? Crear controles enlazados compuestos con dataset tipado
? Realizar mantenimiento a una tabla

Aplicacin 1

Disear un Winform que muestre en un


DatagridView la tabla Orders de la base
de Datos Northwind

Codificar lo sgte en el evento load del Winform

imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
Dim cn As New SqlConnection("server=.;database=northwind;integrated security=true")
Dim da As New SqlDataAdapter("select * from orders", cn)
Dim ds As New DataSet
ds.Clear()
da.Fill(ds, "pedidos")
DgvPedidos.DataSource = ds.Tables("pedidos")
End Sub

Lic. Gina Huertas Camacho Pag # 32

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Aplicacin 2

Disear un formulario
que muestre en un
gridview la tabla
Employees y segn
la fila que seleccione
desde este control
mostrar en textbox
estos campos

Agregar el siguiente codigo

imports System.Data
Imports System.Data.SqlClient
Public Class Form2
Dim cn As New SqlConnection("server=.;database=northwind;integrated security=true")
Dim ds As New DataSet
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
Dim da As New SqlDataAdapter("select * from employees", cn)
ds.Clear()
da.Fill(ds, "empleado")
dgvempleado.DataSource = ds.Tables("empleado")
End Sub
Private Sub dgvempleado_SelectionChanged(ByVal sender As Object, ByVal e As
TextBox1.Text = ds.Tables("empleado").Rows(dgvempleado.CurrentRow.Index).Item(0)
TextBox2.Text = ds.Tables("empleado").Rows(dgvempleado.CurrentRow.Index).Item(1)
End Sub

Lic. Gina Huertas Camacho Pag # 33

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

APLICACIN LIBRE

Imports System.Data
Imports System.Data.SqlClient
Public Class Ejercicio1
Dim cn As New SqlConnection("server=.;database=northwind;integrated security=true")
Dim ds As New DataSet
Private Sub Ejercicio1_Load(ByVal sender As System.Object, ByVal e As
Dim da As New SqlDataAdapter("select * from customers", cn)
da.Fill(ds, "clientes")
Dim da1 As New SqlDataAdapter("select * from [Order Details]", cn)
da1.Fill(ds, "detalles")
Dim da2 As New SqlDataAdapter("select * from categories", cn)
da2.Fill(ds, "categorias")

Dim da3 As New SqlDataAdapter("select * from products", cn)


da3.Fill(ds, "productos")
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


dgv1.DataSource = ds.Tables("clientes")
End Sub

Lic. Gina Huertas Camacho Pag # 34

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


dgv1.DataSource = ds.Tables("detalles")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As dgv1.DataSource =
ds.Tables("categorias")
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As dgv1.DataSource =
ds.Tables("productos")
End Sub
End Class
Aplicacin 04
Agregar un dataset tipado de la tabla products
de la base de datos northwind

Para lo cual realizara los siguientes pasos:

1. Seleccionar el men datos la opcin


agregar nuevo origen de datos

Lic. Gina Huertas Camacho Pag # 35

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

2. Seleccione la cadena de
conexin

3. Seleccione la tabla
4.

4. Mostrar la ventana de Orgenes de Datos Arrastrar hacia el Windows form y ejecutar

APLICA05 CONSULTA DINAMICA


1. Cambiar el tipo de
control desde la
ventana tipo de Datos

Lic. Gina Huertas Camacho Pag # 36

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

2. Modificar las siguientes Propiedades del combobox

3. Modificar la propiedad Datasource y display member

Ahora agregemos la siguiente interfaz.

Que nos muestra la


tabla Categories de
la base de datos
Northwind

1. En un Listbox seleccionamos la categora(CategoryName)


2. Y segn la seleccin mostrar de esta tabla los campos IdCategoria, Categoria, descripcin y
picture

Lic. Gina Huertas Camacho Pag # 37

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

APLICA06 MANTENIMIENTO A UNA TABLA


Disear un Formulario que de mantenimiento a la tabla Region de la base de datos Northwind

Codigo del modulo


Imports System.Data.SqlClient
Public Class Class1
Public Shared Sub MOSTRAR(ByVal dg As DataGridView)
Dim DA As New SqlDataAdapter("select * from region order by regionid", CN)
ds.Clear()
DA.Fill(ds, "reg")
dg.DataSource = ds.Tables("reg")
End Sub
Codigo del formulario
Imports System.Data.SqlClient
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
Class1.MOSTRAR(DataGridView1)
txtcodigo.DataBindings.Add(New Binding("text", ds, "reg.regionid"))
txtRegion.DataBindings.Add(New Binding("text", ds, "reg.regiondescription"))
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
sql = "insert into region (RegionId,RegionDescription) values ( '" & txtcodigo.Text & "','" & txtRegion.Text & "')"
Dim cmd As New SqlCommand(sql, CN)
CN.Open()
Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro Guardado con exito"): CN.Close()
End If

Lic. Gina Huertas Camacho Pag # 38

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Class1.MOSTRAR(DataGridView1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
sql = "update region set RegionDescription='" & txtRegion.Text & "' where RegionId='" & txtcodigo.Text & "'"
Dim cmd As New SqlCommand(sql, CN)
CN.Open()
Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro Guardado con exito"): CN.Close()
End If
Class1.MOSTRAR(DataGridView1)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
sql = "delete from region where regionid='" & txtcodigo.Text & "'"
Dim cmd As New SqlCommand(sql, CN)
CN.Open()
Dim I As Integer
I = cmd.ExecuteNonQuery
If I > 0 Then
MsgBox("Registro eliminado con exito") : CN.Close()
End If
Class1.MOSTRAR(DataGridView1)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
Me.BindingContext(ds, "reg").Position = 0
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As
Me.BindingContext(ds, "reg").Position -= 1
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As
Me.BindingContext(ds, "reg").Position += 1
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As
Me.BindingContext(ds, "reg").Position = ds.Tables(0).Rows.Count - 1
End Sub

Lic. Gina Huertas Camacho Pag # 39

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Gua de Laboratorio 05

CONSULTAS
OBJETIVOS : DESPUS DE COMPLETAR ESTE CAPTULO UD. ESTAR EN CONDICIN DE:
Crear controles enlazados simples, compuestos
Crear diversos tipos de consultas generales, dinmicas

APLICACION 01(ENLAZANDO CONTROLES)

Disea un formulario que nos muestre enlaces a


los controles gridview,textbox,combobox,y asi
mismo bsquedas o consultas. Agregar un modulo
con conexin a la base de datos Northwind

CODIGO DEL MODULO


Imports System.Data.SqlClient
Module Module1
Public cn As New SqlConnection("server=.;initial catalog=northwind;integrated security=true")
Public SQL As String
Public DSCLIENTES As New DataSet
End Module
CODIGO DEL FORMULARIO
Imports System.Data
Imports System.Data.SqlClient
Public Class Frm_Controles_Enlazados
Private cn As New SqlConnection("server=.;database=Northwind;integrated security=true")
Private ds As New DataSet

Lic. Gina Huertas Camacho Pag # 40

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Private Sub Frm_Controles_Enlazados_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
Dim daempleados As New SqlDataAdapter("select * from employees", cn)
'ENLAZANDO DATAGRID
ds.Clear()
daempleados.Fill(ds, "empleados")
DataGridView1.DataSource = ds.Tables(0)
'enlazando TEXTBOX
TxtId.DataBindings.Add(New Binding("text", ds, "empleados.EmployeeID"))
TxtNombre.DataBindings.Add(New Binding("text", ds, "empleados.LastName"))

'ENLAZANDO COMBOBOX
ComboBox1.DataSource = ds.Tables("empleados")
ComboBox1.ValueMember = "EmployeeID"
ComboBox1.DisplayMember = "EmployeeID"

'ENLAZANDO LIST BOX


ListBox1.DataSource = ds.Tables("empleados")
ListBox1.ValueMember = "LastName"
ListBox1.DisplayMember = "LastName"

End Sub
End Class
Practica 02(BUSQUEDA O CONSULTA DINAMICA)

Realizar un formulario que permita buscar un


empleado(Tabla Employees de la base de datos
northwind) por su cdigo y luego mostrar sus
datos(employeeid,lastname) en un datagridview y en
controles textbox

Lic. Gina Huertas Camacho Pag # 41

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Cdigo del formulario

Imports System.Data
Imports System.Data.SqlClient
Public Class Consulta_combo
Private Sub Consulta_combo_Load(ByVal sender As System.Object, ByVal e As
Dim daempleados As New SqlDataAdapter("select * from employees", cn)
Dim ds As New DataSet
ds.Clear()
daempleados.Fill(ds, "empleados")
ComboBox1.DataSource = ds.Tables("empleados")
ComboBox1.DisplayMember = "EmployeeID"
ComboBox1.ValueMember = "EMPLOYEEID"
End Sub
Private Sub ComboBox1_SelectionChangeCommitted(ByVal sender As Object, ByVal e As Dim
da As New SqlDataAdapter("select * from employees where employeeid='" &
ComboBox1.SelectedValue & "'", cn)
Dim ds1 As New DataSet
ds1.Clear()
da.Fill(ds1, "busqueda")
DataGridView1.DataSource = ds1.Tables("busqueda")
TextBox1.Text = ds1.Tables(0).Rows(0).Item(0)
TextBox2.Text = ds1.Tables(0).Rows(0).Item(1)
End Sub
End Class

Lic. Gina Huertas Camacho Pag # 42

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Practica 03(BUSQUEDA O CONSULATA DINAMICa)

Disear un formulario que permita


ingresar el cdigo de un cliente(tabla
customers de Northwind) y al hacer
click en un button permita mostrar
sus datos en un datagridview y en un
textbox , sino lo encontrol indicara en
un message box que no existe

cdigo del formulario


imports System.Data.SqlClient
Public Class Consultas_textbox
Private Sub Button1_Click
Dim da1 As New SqlDataAdapter("select * from customers where customerid='" & txtcodigo.Text &"'",
cn)
Dim ds1 As New DataSet
ds1.Clear()
da1.Fill(ds1)
If ds1.Tables(0).Rows.Count = 0 Then
MsgBox("No existe")
Else
dgvclientes.DataSource = ds1.Tables(0)
txtnombre.Text = ds1.Tables(0).Rows(0).Item(0)
End If
End Sub
End Class

Lic. Gina Huertas Camacho Pag # 43

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Captulo III
PROCEDIMIENTOS ALMACENADOS (SP)

3.1 CONCEPTO
Un Procedimiento Almacenado es un programa auto controlado escrito en lenguaje del
DBMS, son almacenados como parte de la Base de Datos y sus metadatos.
Tambin podemos definirlo Un Stored Procedure o Procedimiento almacenado al conjunto de
instrucciones Transact-SQL predefinidas, usadas para realizar una tarea especfica. Puede haber
mltiples instrucciones en un solo procedimiento almacenado, y estas son encapsuladas en un objeto
de la base de datos.
3.2 VENTAJAS
Existen varios motivos por los cuales un desarrollador puede decidir usar Stored Procedures, una
de las mas resaltantes es que resulta ms eficiente, ms seguro y no requiere de conocimiento de
como est diseada la base de datos, los procedimientos almacenados ofrecen varias ventajas.
Pueden:

Compartir la lgica de la aplicacin con las restantes aplicaciones, lo que asegura que el
acceso y la modificacin de los datos se hace de una forma coherente.

Todos los clientes pueden usar los mismos procedimientos almacenados para asegurar que el
acceso y modificacin de los datos es coherente.

Apartar a los usuarios de la exposicin de los detalles de las tablas de la base de datos. Si un
conjunto de procedimientos almacenados permite llevar a cabo todas las funciones de negocio
que los usuarios necesitan, los usuarios no tienen que tener acceso a las tablas directamente.

Proporcionar mecanismos de seguridad. Los usuarios pueden obtener permiso para ejecutar un
procedimiento almacenado incluso si no tienen permiso de acceso a las tablas o vistas a las que
hace referencia.

Mejorar el rendimiento. Los procedimientos almacenados implementan muchas tareas como


una serie de instrucciones de Transact-SQL.

Lic. Gina Huertas Camacho Pag # 44

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Reducir el trfico de red. En lugar de enviar cientos de instrucciones de Transact-SQL por la


red, los usuarios pueden realizar una operacin compleja mediante el envo de una nica
instruccin, lo que reduce el nmero de solicitudes que se pasan entre el cliente y el servidor.

3.3 TIPOS DE SP
Existen tres tipos de procedimientos almacenados son:

1. Procedimientos almacenados que devuelven registros Los procedimientos almacenados


que devuelven registros se utilizan para encontrar registros especficos, clasificar y filtrar
esos registros, y devolver el resultado de las operaciones de bsqueda, clasificacin y
filtrado a un objeto DataSet o un control enlazado a lista.Ejemplo consultas generales y
dinamicas

Ejemplo: Un Store Procedure que presente los clientes o pasajeros que viajaron en el ltimo
mes que paso

2. Procedimientos almacenados que retornan un valor, tambin denominados


procedimientos almacenados escalares Los procedimientos almacenados que retornan un
valor se utilizan para ejecutar un comando o funcin de la base de datos que devuelve un
nico valor.Ejemplo: Mostrar el total de Items vendidos o atendidos en una orden.

3. Los procedimientos almacenados de accin se utilizan para realizar alguna funciones en


la base de datos, pero no devuelven un registro o un valor. Estas funciones de la base de
datos pueden incluir actualizar, editar o modificar los datos Ejemplo : Modificar el correo
electrnico de un cliente o su direccin

3.4 Creacin de SP
Los procedimientos almacenados se crean con la instruccin CREATE PROCEDURE.
Considere los hechos siguientes cuando cree procedimientos almacenados:
Los procedimientos almacenados pueden hacer referencia a tablas, vistas, funciones
definidas por el usuario y otros procedimientos almacenados, as como a tablas temporales.
Si un procedimiento almacenado crea una tabla local temporal, la tabla temporal slo existe
para atender al procedimiento almacenado y desaparece cuando finaliza la ejecucin del
mismo.

Lic. Gina Huertas Camacho Pag # 45

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

La creacin se puede desarrollar de diversas formas , esta vez lo explicaremos por el


asistente

1. Ingresar a sql Server Management Studio de sqlserver 2008

2. Ahora seleccione desde el explorador de objetos su base


de datos y explaye el nodo Programmability

3. Seleccin del men contextual de Stored Procedured la


opcion new stored procedure

4. Se mostrara una ventana de edicin para crear los sp utilizara la instruccin create procedure
CREATE PROCEDURE nombre sp
AS
Begin
INSTRUCCIONES DE SQLSERVER
END
Ejemplo un sp
CREATE PROCEDURE traer_regiones
AS
Begin
Select * from regiones
END
5. Luego que termina el cdigo , seleccione de create procedure hasta end y del menu conxtextual seleccione
ejecutar seleccin o presione F5

Lic. Gina Huertas Camacho Pag # 46

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Ejemplos de sp que retornan filas

1. Sp que devuelve todos los registros de la tabla empleado (para una consulta general)

CREATE PROCEDURE traer_empleados


AS
BEGIN
SELECT idempe, apemp, diremp FROM empleados
END

2. Sp que devuelve un empleado (para una consulta dinmica)


CREATE PROC traer_un_empleado
@cod varchar(8)
AS
BEGIN
SELECT idempe, apemp, diremp FROM empleados WHERE idempe=@cod
END
Ejemplos de sp de accion

3. Sp que inserta registros de la tabla customers

CREATE PROCEDURE [dbo].[usp_Cliente_Insertar]


@codigo varchar(40),
@nombre varchar(40),
@pais varchar(15),
@ciudad varchar(15)
AS
INSERT INTO Customers (CustomerID, CompanyName, City, Country)
VALUES (@codigo,@nombre,@pais,@ciudad)
RETURN

Lic. Gina Huertas Camacho Pag # 47

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

3.5 Invocar al SP desde el formulario


1.1 Cuando el sp retorna filas
1. Invoca al sp desde el dataadapter
Dim daempleados As New SqlDataAdapter("traer_empleados", cn)
2. El DataAdapter llenara el dataset
daempleados.Fill(DSEMPLEADO, "empleados")
3. Ahora el ds podemos utilizarlo para enlazarlo con cualquier control

1.2 Cuando el sp que retorna filas de una consulta dinmica


Dim da as New SqlDataAdapter("Traer_un_empleado", cn)
With DA.SelectCommand
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@cod", txtcod.text)
End With
Dim dst As New DataSet
DAP.Fill(dst, "CLIENTES")
Datagridview1.datasource=dst.tables(0)

1.3 Cuando el sp de Accin


Dim cmd As New SqlCommand("usp_Cliente_Insertar", cn)
With cmd
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@nombre", vnom)
.Parameters.AddWithValue("@pais", vpais)
.Parameters.AddWithValue("@ciudad", vciudad)
End With
cn.Open()
Dim x As Integer = cmd.ExecuteNonQuery
cn.Close()
If x > 0 Then
Return True
Else
Return False
End If

Lic. Gina Huertas Camacho Pag # 48

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Sesin de Laboratorio 06

CONSULTAS CON SP DE ACCION


OBJETIVOS : DESPUS DE COMPLETAR ESTE CAPTULO UD. ESTAR EN CONDICIN DE:
Crear sp con parmetros
Invocar sp desde el formulario

MANTENIMIENTO A CLIENTES(CON SP)


Ahora agrega la tabla clientes a tu base de datos Sistema_Pedidos
el campo idclie debe incrementarse
automticamente de 1 en 1
modificar la propiedad identity

Disea la siguiente interfaz en un control tab :


1. Pagina Nuevo

Lic. Gina Huertas Camacho Pag # 49

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

2. Pgina Actualizar

3 Pagina Eliminar

4. Pagina Mostrar

Imports System.Data.SqlClient
Public Class Frm_clientes
Private Sub btngrabar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
btngrabar.Click
Dim CMD As New SqlCommand("CLIENTE_INSERTA", cn)
With CMD
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@NOM", TxtNombr.Text)
.Parameters.AddWithValue("@DIR", TxtDireccion.Text)

Lic. Gina Huertas Camacho Pag # 50

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

.Parameters.AddWithValue("@TEL", TxtTelefono.Text)
.Parameters.AddWithValue("@RUC", TxtRuc.Text)
End With
cn.Open()
Dim I As Integer
I = CMD.ExecuteNonQuery()
cn.Close()
If I = 1 Then MsgBox("Inserto con exito") Else MsgBox("ERROR AL INSERTAR")
End Sub
Private Sub BtnMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim DA As New SqlDataAdapter("SELECT * FROM CLIENTES", cn)
Dim DS As New DataSet
DS.Clear()
DA.Fill(DS, "C")
DataGridView1.DataSource = DS.Tables(0)
End Sub
Private Sub BtnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim CMD1 As New SqlCommand("CLIENTE_ACTUALIZA", cn)
With CMD1
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@ID", TXTCOD.Text)
.Parameters.AddWithValue("@NOMBRE", TXTNAME.Text)
.Parameters.AddWithValue("@DIREC", TXTDIR.Text)
.Parameters.AddWithValue("@TELEF", TXTTEL.Text)
.Parameters.AddWithValue("@NRUC", TXTRU.Text)
End With
Try
cn.Open()
Dim I As Integer
I = CMD1.ExecuteNonQuery()
cn.Close()
If I = 1 Then MsgBox("Actualizo con exito") Else MsgBox("ERROR AL MODIFICAR")
Catch EX As Exception

Lic. Gina Huertas Camacho Pag # 51

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

MsgBox("ERROR" + EX.Message)
End Try
End Sub
Private Sub TXTCOD_TextChanged1(ByVal sender As Object, ByVal e As System.EventArgs)
Dim SQL As String
SQL = "SELECT * FROM CLIENTES WHERE IDCLIE='" & TXTCOD.Text & "'"
Dim DA1 As New SqlDataAdapter(SQL, cn)
Dim DS1 As New DataSet
DS1.Clear()
DA1.Fill(DS1)
TXTNAME.Text = DS1.Tables(0).Rows(0).Item(1)
TXTDIR.Text = DS1.Tables(0).Rows(0).Item(2)
TXTTEL.Text = DS1.Tables(0).Rows(0).Item(3)
TXTRU.Text = DS1.Tables(0).Rows(0).Item(4)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim CMD1 As New SqlCommand("CLIENTE_elimina", cn)
With CMD1
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@cod", txtcodig.Text)
End With
Try
cn.Open()
Dim I As Integer
I = CMD1.ExecuteNonQuery()
cn.Close()
If I = 1 Then MsgBox("Eliminado con exito") Else MsgBox("ERROR AL MODIFICAR")
Catch EX As Exception
MsgBox("ERROR" + EX.Message)
End Try
End Sub
End Class

Lic. Gina Huertas Camacho Pag # 52

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

CAPITULO IV
Tablas Relacionadas

4.1 Modelo Entidad Relacin


Representacin de la realidad travs de un conjunto de objetos que lo constituyen (entidades) y los
vnculos entre ellos(relaciones)
Entidad
Existen varios conceptos que definen Entidad :
? Objeto que existen y es distinguible de otros objetos Ejemplo Persona cuenta, cliente
Se representa por un conjunto de atributos.
? Una entidad es una persona, lugar , concepto, suceso o cualquier cosa que se pueda identificar
con un nombre y sobre la cual se pueda guardar informacin. Ms adelante estos nombres de
entidades correspondern a tablas de la base de datos, por lo que se puede descubrirlas durante
el anlisis de la informacin.
? Se denomina entidad a todas las cosas que poseen caractersticas o cualidades propias, las
cuales pueden ser almacenados como datos.
? Es aquel objeto acerca del cual queremos almacenar informacin en la base de datos.
RELACION
Es la asociacin o vnculo existente entre entidades . Por ejemplo el tipo de Entidad Autor se
interrelacin con el tipo de entidad documentos mediante de tipo de relacin Escribe.
Representamos el tipo Interrelacin mediante un rombo etquelo con el nombre de la interrelacin
unido mediante arcos a los tipos de entidad que asocia
Ejemplo : Representacin de un tipo de interrelacin
escribe
Autor documento

Puede verse al tipo de Interrelacin escribe entre autor y documento


Un tipo de interrelacin se caracteriza por
Nombre por que identificamos de una forma nica el tipo de interrelacin (etiqueta del roma y
mediante el cual lo referenciado ej : Escribe
Grado : Numero de tipos de entidad que participan en un tipo de Interrelacin pude se de grado 2
binario cuando asocian 2 tipos de entidad de grado 3 (tenario) en el ejemplo escribe es de grado 2

Lic. Gina Huertas Camacho Pag # 53

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

4.2 Consultas de Seleccin


Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva
informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto recordset. Este conjunto de registros puede
ser modificable.

Es posible hacer consultas usando varias tablas en la misma sentencia SELECT.Esto nos
permite realizar otras dos operaciones de lgebra relacional que an no hemos visto: el
producto cartesiano y la composicin

4.3 Producto Cartesiano e Inner JOIN


Producto cartesiano

El producto cartesiano de dos tablas son todas las combinaciones de todas las filas de las
dos tablas. Usando una sentencia SELECT se hace proyectando todos los atributos de
ambas tablas. Los nombres de las tablas se indican en la clusula FROM separados con
comas:

Este es un operador binario, se aplica a dos relaciones y el resultado es otra relacin.

El resultado es una relacin que contendr todas las combinaciones de las tuplas de los dos
operandos.

Esto es: si partimos de dos relaciones, R y S, cuyos grados son n y m, y cuyas cardinalidades
a y b, la relacin producto tendr todos los atributos presentes en ambas relaciones, por lo
tanto, el grado ser n+m. Adems la cardinalidad ser el producto de a y b.

Para ver un ejemplo usaremos dos tablas inventadas al efecto:

tabla1(id, nombre, apellido)

tabla2(id, nmero)

tabla1

id nombre apellido
15 Fulginio Liepez
26 Cascanio Suanchiez

tabla2
id nmero
15 12345678

Lic. Gina Huertas Camacho Pag # 54

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

26 21222112
15 66525425
El resultado del producto cartesiano de tabla1 y tabla2: tabla1 x tabla2 es:
tabla1 x tabla2
id nombre apellido id nmero
15 Fulginio Liepez 15 12345678
26 Cascanio Suanchiez 15 12345678
15 Fulginio Liepez 26 21222112
26 Cascanio Suanchiez 26 21222112
15 Fulginio Liepez 15 66525425
26 Cascanio Suanchiez 15 66525425
Podemos ver que el grado resultante es 3+2=5, y la cardinalidad 2*3 = 6.

Composicin (Join)

Una composicin (Join en ingls) es una restriccin del producto cartesiano, en la relacin de salida
slo se incluyen las tuplas que cumplan una determinada condicin.La condicin que se usa ms
frecuentemente es la igualdad entre dos atributos, uno de cada tabla.

<relacin1>[<condicin>]<relacin2>

Veamos un ejemplo. Partimos de dos relaciones:

tabla1(id, nombre, apellido)

tabla2(id, nmero)

tabla1
id nombre apellido
15 Fulginio Liepez
26 Cascanio Suanchiez

tabla2
id nmero
15 12345678
26 21222112
15 66525425
La composicin de estas dos tablas, para una condicin en que 'id' sea igual en ambas
sera:

tabla1[tabla1.id = tabla2.id]tabla2
id nombre apellido t2.id nmero
15 Fulginio Liepez 15 12345678
26 Cascanio Suanchiez 26 21222112
15 Fulginio Liepez 15 66525425

Lic. Gina Huertas Camacho Pag # 55

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

EJEMPLOS

1. Codigo que nos permite mostrar campos de 2 tablas employees y orders


"SELECT Employees.EmployeeID, Employees.LastName, Orders.OrderDate " & _
"FROM Employees INNER JOIN orders " & _
"ON Employees.EmployeeID = Orders.EmployeeID"

2. cdigo que nos permite mostrar campos de 3 tablas relacionadas (orders,employees


y order details
" SELECT Employees.EmployeeID, Employees.LastName, Orders.OrderID, [Order
Details].ProductID, [Order Details].UnitPrice " & _
"FROM Employees INNER JOIN orders " & _
" ON Employees.EmployeeID = Orders.EmployeeID INNER JOIN [Order Details] " &
_
" ON Orders.OrderID = [Order Details].OrderID "
3. cdigo que permite mostrar campos de 4 tablas
" SELECT Employees.EmployeeID, Employees.LastName, Orders.OrderID, [Order
Details].ProductID, [Order Details].UnitPrice, Products.ProductName " & _
"FROM Employees INNER JOIN orders " & _
" ON Employees.EmployeeID = Orders.EmployeeID INNER JOIN [Order Details] " &
_
" ON Orders.OrderID = [Order Details].OrderID inner join Products " & _
" ON [Order Details].ProductID = Products.ProductID"

Lic. Gina Huertas Camacho Pag # 56

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Sesin de laboratorio #07

Data Relation
OBJETIVOS : DESPUS DE COMPLETAR ESTE CAPTULO UD. ESTAR EN CONDICIN DE:
? MOSTRAR EN UN DATAGRID TABLAS RELACIONADAS
? NAVEGAR POR CAMPOS DE TABLAS RELACIONADAS

Aplicacin 01
Disea un formulario que nos permita mostrar las tablas relacionadas Order y Orders Details

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


Dim col1, col2 As DataColumn
Dim da1 As New SqlDataAdapter("select * from orders ", cn1)
da1.Fill(ds, "pedidos")
Dim da2 As New SqlDataAdapter("select * from [order details] ", cn1)
da2.Fill(ds, "detalles")
col1 = ds.Tables("pedidos").Columns("orderid")
col2 = ds.Tables("detalles").Columns("orderid")
ds.Relations.Add("pedidosdetalles", col1, col2)
DataGrid1.DataSource = ds.Tables("pedidos")
End Sub

Lic. Gina Huertas Camacho Pag # 57

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Aplicacin 02

Disear una aplicacin que muestre en 2 datagrid la relacin maestro detalle de las tabla Orders y
OrdersDetaills
Private Sub Frm2dg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Dim col1, col2 As DataColumn
Dim da1 As New SqlDataAdapter("select * from orders ", cn1)
da1.Fill(ds, "pedidos")
Dim da2 As New SqlDataAdapter("select * from [order details] ", cn1)
da2.Fill(ds, "detalles")
col1 = ds.Tables("pedidos").Columns("orderid")
col2 = ds.Tables("detalles").Columns("orderid")
ds.Relations.Add("pedidosdetalles", col1, col2)
ds.Tables("detalles").Columns("orderid"))
DataGrid1.DataSource = ds
DataGrid1.DataMember = "pedidos"
DataGrid2.DataSource = ds
DataGrid2.DataMember = "pedidos.pedidosdetalles"
End Sub

Lic. Gina Huertas Camacho Pag # 58

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Consulta innerjoin

Disear una consulta que permita seleccionar


desde un combobox el codigo del
producto(Campo ProductID ,Tabla Products
de la bd Northwind)
Y nos muestre los siguientes campos
categoryname,product_name,unit
price,company_name

Private Sub Form2_Load(ByVal sender As


sql = "select distinct(P.ProductID),C.CategoryName, P.ProductName,OD.UnitPrice,S.CompanyName
"&_
"From Products P inner join [Order Details] OD " & _
"On P.ProductID=OD.ProductID " & _
"inner join Suppliers S " & _
"On S.SupplierID=P.SupplierID " & _
"inner join Categories C " & _
"On C.CategoryID=P.CategoryID "
Dim da As New SqlDataAdapter(sql, cn1)
da.Fill(ds3, "Producto")
ComboBox1.DataSource = ds3.Tables("Producto")
ComboBox1.ValueMember = "ProductID"
ComboBox1.DisplayMember = "ProductID"
lblcategory.DataBindings.Add("text", ds3.Tables("Producto"), "CategoryName")
lblproduct.DataBindings.Add("text", ds3.Tables("Producto"), "ProductName")
lblunit.DataBindings.Add("text", ds3.Tables("Producto"), "UnitPrice")
lblcompany.DataBindings.Add("text", ds3.Tables("Producto"), "CompanyName")
End Sub

Lic. Gina Huertas Camacho Pag # 59

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Disear el siguiente formulario que permita


mostrar informacion de un empleado

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


sql = "select E.LastName,E.Title,T.TerritoryDescription, R.RegionDescription " & _
"From Employees E inner join EmployeeTerritories " & _
"On E.EmployeeID=EmployeeTerritories.EmployeeID " & _
"inner join Territories T " & _
"On T.TerritoryID=EmployeeTerritories.TerritoryID " & _
"inner join Region R " & _
"On R.RegionID=T.RegionID " & _
"where E.EmployeeID= '" & txtid.Text & "'"
Dim da As New SqlDataAdapter(sql, cn1)
ds4.Clear()
da.Fill(ds4)
DataGrid1.DataSource = ds4
End Sub

Lic. Gina Huertas Camacho Pag # 60

PDF created with pdfFactory Pro trial version www.pdffactory.com



Mdulo II Desarrollo de Sistemas
Empresariales

Procedimientos Almacenados
create PROC CLIENTE_INSERTA
@NOM VARCHAR(50),
@DIR VARCHAR(50),
@TEL VARCHAR(9),
@RUC NUMERIC
AS
BEGIN
INSERT INTO clientes
(nomcli, dircli, telfcli, ruccli)
VALUES (@nom,@dir,@tel,@ruc)
END
go
create proc CLIENTE_ACTUALIZA
@ID INT,
@NOMBRE VARCHAR(50),
@DIREC VARCHAR(50),
@TELEF VARCHAR(9),
@NRUC NUMERIC
AS
BEGIN
UPDATE clientes
SET nomcli = @NOMBRE, dircli = @DIREC, telfcli = @TELEF, ruccli = @NRUC
WHERE (idclie = @ID)
END
go
create PROC CLIENTE_ELIMINA
@COD INTEGER
AS
BEGIN
DELETE FROM clientes WHERE (idclie = @COD)
END
go

Lic. Gina Huertas Camacho Pag # 61

PDF created with pdfFactory Pro trial version www.pdffactory.com

Potrebbero piacerti anche