Академический Документы
Профессиональный Документы
Культура Документы
ELEMENTOS BASICOS
Informacin y Conocimiento son los dos elementos claves del nuevo milenio
ninguna sociedad podr alcanzar ni puede ignorar este nuevo esquema ya las
naciones no se miden por su riqueza industrial, ni sus activos fsicos, ni por su
poder militar, sino por la cantidad de informacin que produce y consume, as
como por la recombinacin de informacin nueva en un conocimiento de grado
superior.
Nuevos sistemas de informacin, tienden a ser cada vez de mayor alcance y
complejidad sobre todo cuando se toman en cuenta la nuevas necesidades de
informacin y conocimiento que demandan las nuevas organizaciones.
Nuevos sistemas de informacin son costosos en tiempos y recursos, la
solucin moderna de sistemas de informacin exigen herramientas y
metodologas que resuelvan rpida, econmica, eficiente y de manera global,
problemas de informacin y conocimiento planteados por las organizaciones.
Adems el pleno potencial del hardware tampoco es aprovechado plenamente
y existe un considerable retraso con el software y sus aplicaciones generando
lo que se conoce como crisis del software.
Actualmente el paradigma de programacin se ha enfocado a nuevas
necesidades de modernos y globales sistemas de informacin basados en
redes y ms aun en la red global de internet, actualmente es mas importante
poder concebir y construir sistemas de informacin con estas nuevas
tecnologas de programacin.
Visual Basic NET es un lenguaje de programacin desarrollado por Microsoft
muy apropiado para construir sistemas de informacin basados en red o mejor
aun en internet.
NET es la nueva tecnologa desarrollada y ofrecida por Microsoft que permitir
hacer ms fcil aun la construccin y desarrollo de programas y aplicaciones
para Internet.
El propsito del presente curso es enfocarse al ltimo modelo usando visual
Basic net y les deseo mucha suerte a mis alumnos?
ELEMENTOS BASICOS
Modelo de Solucion
En general un problema de informacin es posible entenderlo, analizarlo y
descomponerlo en todos sus componentes o partes que de una u otra manera
intervienen tanto en su planteamiento como en su solucin.
Una herramienta rpida que nos permite descomponer en partes un problema
para su solucin es el llamado modelo de solucin, esta consiste de una
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
pequea caja que contiene los tres elementos ms bsicos en que se puede
descomponer cualquier problema sencillo de informacin, estas tres partes son:
LA PRIMERA PARTE son todos los datos que el computador ocupa para
resolver el problema, estos datos son almacenados internamente en la
memoria del computador en las llamadas variables de entrada.
LA SEGUNDA PARTE son todas las operaciones generalmente algebraicas
necesarias para solucionar el problema, generalmente esta parte del modelo es
una ecuacin algebraica o formula (o igualdad matemtica, ej. X= y + 5).
LA TERCERA PARTE es el resultado o solucin del problema que
generalmente se obtiene de la parte de operaciones del modelo y dichos datos
estn almacenados en las llamadas variables de salida.
En resumen para todo problema sencillo de informacin es necesario
plantearse las siguientes preguntas:
Que datos ocupa conocer el computador para resolver el problema y en cuales
variables de entrada se van a almacenar?
Que procesos u operaciones debe realizar el computador para resolver el
problema planteado?
Que informacin o variables de salida se van a desplegar en pantalla para
responder al problema planteado originalmente?
Como nota importante no confundir los trminos datos, variables e informacin:
Datos se refiere a informacin en bruto no procesada ni catalogada, por
ejemplo Tijuana, calle primera # 213,15 anos, $2,520.00, etc.
Variables es el nombre de una localidad o direccin interna en la memoria del
computador donde se almacenan los datos, ejemplo de variables para los
casos del inciso anterior, CIUDAD, DIRECCION, EDAD, SUELDO, ETC.
Informacin son datos ya procesados que resuelven un problema planteado.
6
mdulos con
En Visual Basic Net una variable se define como un identificador que se utiliza
para almacenar todos los datos generados durante la ejecucin de un
programa.
Existen ciertas reglas en cuanto a variables:
Claras y con referencia directa al problema.
No espacios en blanco, ni smbolos extraos en ellas.
Se pueden usar abreviaturas, pero solo de carcter general.
No deben ser palabras reservadas del lenguaje.
Ejemplos de buenas variables en Visual Basic Net :
Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.
Language element
Chr, ChrW
Format, LCase, UCase
DateSerial, DateValue
Hex, Oct
Format, Str
CBool, CByte, CDate, CDbl, CDec, CInt, CLng,
One data type to another.
CSng, CShort, CStr, CType, Fix, Int
Date to day, month,
Day, Month, Weekday, Year
weekday, or year.
Time to hour, minute, or
Hour, Minute, Second
second.
String to ASCII value.
Asc, AscW
String to number.
Val
Time to serial number.
TimeSerial, TimeValue
FUENTE: MICROSOFT NET VISUAL BASIC NET
En Visual Basic Net para el ejemplo anterior se tendra:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
Operadores Aritmeticos
En Visual Basic Net un operador es un smbolo especial que indica al
compilador que debe efectuar una operacin matemtica o lgica.
Visual Basic NET reconoce los siguientes operadores aritmticos:
Operador Operacin
+
Suma
Resta
*
Multiplicacin
/
Divisin Flotante
\
Division Entera
^
Potencia
MOD
Modulo
El Operador (/) Divisin Flotante es el operador de divisin normal.
El Operador (\) tambin es divisin pero los datos:
a) Primero son redondeados al entero mas cercano (byte, integer, long) b) Al
final vbasic trunca la parte residual.
El Operador (^), resuelve dos problemas:
a) Potencias, por ejemplo
se resuelve como:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
= 5^8/3
= 9^1/2
En Visual Basic el operador ( MOD ) devuelve el residuo entero de una divisin
entre enteros, ejemplo:
Dim alfa As Single;
alfa = 23 MOD 4;
Desplegar alfa; El resultado en pantalla es 3
Otro ejemplo;
alfa = 108 MOD 10;
Desplegar alfa; El resultado en pantalla es 8
TAREAS VISUAL BASIC NET
1.2.3.-
Jerarquia de Operaciones
En Visual Basic Net el problema de no tomar en cuenta la jerarqua de los
operadores al plantear y resolver una operacin casi siempre conduce a
resultados muchas veces equivocados como estos:
Ejemplos:
a) 2 + 3 * 4 = 20 (incorrecto)
2 + 3 * 4 = 14 (correcto)
b) si calif1=60 y calif2=80
Entonces si en programa se usa
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
10
Promedio=calif1 + calif2/2
Da como resultado promedio = 100
En Visual Basic recordar siempre, que antes de plantear una formula en un
programa se deber evaluar contra el siguiente:
Orden de operaciones:
1.- Parntesis
2.- Potencias y races
3.- Multiplicaciones y divisiones
4.- Sumas y restas
5.- Dos o ms de la misma jerarqua u orden, entonces resolver de izquierda a
derecha
Nota: Si se quiere alterar el orden normal de operaciones, entonces usar
parntesis.
Nota: Tampoco es bueno usar parntesis de ms en una operacin, esto solo
indica que no se evalu bien la formula, como en el siguiente ejemplo:
<m> rea = (base * altura) / 2 </m>
Aqu los parntesis estn de ms porque por orden de operaciones,
multiplicacin y divisin tienen la misma jerarqua y entonces se resuelven de
izquierda a derecha en otras palabras en visual Basic net ni que falten
parntesis ni que sobren parntesis visual Basic net
a) Propiedades: Son las caractersticas propias de un objeto estas
propiedades o atributos son los que permiten diferenciar o individualizar un
objeto de otro objeto ya sea de la misma o diferente clase o categora.
Las propiedades ms generales son forma, color, tamao, peso, etc., pero ya
en particular:
Chamarra Marca, material, precio, color, tamao, etc.
Alumno Matricula, nombre, edad, domicilio, etc.
Gato Raza, nombre, color, edad, etc.
Ventana Windows>Tamao, Color, Font, etc.
b) Mtodos: Son las conductas propias de la naturaleza del objeto.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
11
As como las propiedades son el ser (que es) del objeto, los mtodos son el
hacer (que hacer) del objeto.
Ejemplo de mtodos:
Gato > Maullar (), comer (), correr (), saltar (), etc.
Alumno> Estudiar (), comer (), asistir clase (), pintear ()
Cuaderno>Es escrito(), es rayado(), es borrado(), etc.
Ventana Windows> Abrir(), cerrar(), maximizar(), etc..
c) Eventos: Es la relacin (de varias maneras) que se puede dar entre dos
objetos ya sean de la misma o diferente clase.
Un evento se manifiesta como una interaccin entre dos objetos, en general al
momento de la relacin al mismo tiempo se dar una reaccin o respuesta por
parte de los dos objetos que se manifiestan como una serie, cadena o
conjuntos de mtodos propios que se activan o disparan, ejemplo:
Evento
Relacin Mtodos que se activan
gato detecta gata
detectar maullar(), correr(), oler()
gato detecta perro
detectar bufar(), saltar(), correr()
maestro ensena alumno Ensenar pasar lista(), preguntar(), etc
Ratn clic Windows
clic
maximizar(), cerrar()
Ratn doble clic Windows Doble clic minimizar(), etc
Un Programa o un SCRIPT en visual Basic net se puede considerar como un
conjunto de una o ms paginas o formas donde cada una de ellas contiene un
conjunto de objetos, componentes o controles.
Un componente o propiamente dicho un control es un objeto que se especializa
en una tarea especfica por ejemplo hay controles especializados en desplegar
textos o mensajes, otros controles se especializan en desplegar imgenes o
videos, otros en manipular directorios o archivos en disco, etc.
Pero en general tanto las formas como los controles no dejan de ser objetos en
programacin de visual Basic y por tanto tienen sus propiedades, mtodos y
estn sujetos a eventos.
En visual Basic Net recordar adems que un conjunto de objetos que
comparten o contienen caractersticas similares forman la llamada clase.
12
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
13
14
Font
Carga o lee el font
ForeColor
Carga o lee el color del foreground
Height
Carga o lee la altura del control
ID
Carga o lee el identificador del control
TabIndex
Carga o lee el tab index
ToolTip
Carga o lee el tooltip del control
Visible
Carga o lee su estado visible
Width
Carga o lee la anchura del control
Interesante verdad?
Prog2.aspx
<HTML>
<H2>BIENVENIDO A VISUAL BASIC NET</H2>
<FORM RUNAT=SERVER>
EDAD.....:<ASP:TEXTBOX ID=EDAD RUNAT=SERVER/><BR>
MESESLABEL..:<ASP:LABEL ID=MESES1 RUNAT=SERVER/><BR>
MESESLITERAL:<ASP:LITERAL ID=MESES2 RUNAT=SERVER/><BR>
<ASP:BUTTON TEXT=OK ONCLICK=EVENTO1 RUNAT=SERVER/>
</FORM></HTML>
<SCRIPT LANGUAGE=VB RUNAT=SERVER>
SUB EVENTO1(Sender As Object, E As EventArgs)
MESES1.TEXT=EDAD.TEXT * 12
MESES2.TEXT=EDAD.TEXT * 12
END SUB
</SCRIPT>
Observar que es bastante similar al programa anterior, la diferencia es que se
estn usando objetos asp.net en lugar de objetos html, la ventaja es que tienen
muchas nuevas y tiles propiedades para mejorar su apariencia, revisar arriba
en el cuadro de propiedades. Se est usando objetos asp net TEXTBOX y se
est procesando su propiedad TEXT, de manera muy similar a lo que se hizo
con la propiedad VALUE de objetos HTML.
Se puede usar otro objeto TEXTBOX para desplegar el resultado, pero se
quiere demostrar en este programa, los otros dos tipos de tipos de objetos asp
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
15
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
16
1.- Construir scripts en visual Basic net para la segunda mitad de los problemas
que se vieron en el tema de modelo de solucin, usar labels en unos y literal en
otros.
DESCRIPCION
Define atributos usados para compilar paginas ASP.NET
Define atributos usados para compilar controles de usuarios
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
17
2.- El resto de instrucciones son las normales de asp net vistas en el tema
anterior.
Prog3.vb
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
PUBLIC CLASS PROG3 : Inherits Page
' CREANDO Y ENLAZANDO CONTROLES A FORM3.ASPX
PUBLIC EDAD AS TEXTBOX
PUBLIC MESES AS TEXTBOX
' programando evento clik de prog3.aspx
PUBLIC SUB EVENTO1(Sender As Object, E As EventArgs)
MESES.TEXT=EDAD.TEXT * 12
END SUB
END CLASS
Notas:
1.- Este programa empieza importando o usando las libreras de clases
apropiadas para este problema:
SYSTEM:= Librera mas genrica de Microsoft net, incluye todas las
definiciones del lenguaje.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
18
19
20
Fin-si
De los ejemplos observar que los caminos a seguir por el computador
dependern de la evaluacin que el computador hace con y de la condicin.
Todo lenguaje de programacin como visual basic debe tener instrucciones que
permitan formar condiciones e instrucciones que pueden evaluar esas
condiciones.
Pero recordar que lenguajes modernos y orientados a cliente - servidor de igual
forma tienen componentes que permiten del mismo modo al usuario tomar
decisiones incluso directamente en pantalla, es decir tambin existen los
objetos, controles o componentes de seleccin y decisin en html,
htmlcontontrols, activex, webcontrols.
El formato general de una instruccin condicional es:
Operadores Relacionales
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
21
<>
No es igual que o es diferente que
22
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
23
notas:
En cuanto al if de visual Basic net se est respetando el formato que ya se
indico.
Lo nuevo es que existen tres tipos de objetos o controles de orden o comando,
ellos son BUTTON, LINKBUTTON, IMAGEBUTTON(efectivamente si hacen
click
dentro de la imagen de mi perrito(osito) se activa el mtodo
correspondiente y por tanto se evala la condicin.
En cuanto a button y linkbutton el primero es la cajita normal de rdenes que se
a venido usando y el segundo es una liga normal de html, observar que pueden
usar el mismo ONCLICK y mtodo void etc().
Pero imagebutton debe llevar su propio onclick y en su mtodo void no se
manda como parmetro un EVENTARGS sino un IMAGECLICKEVENTARGS.
b) ejemplo 2; segundo modelo forma en prog5.apsx y cdigo en prog5.cs
prog5.aspx
<%@ PAGE INHERITS=PROG5 SRC=PROG5.VB %>
<HTML>
<FORM RUNAT=SERVER>
<ASP:PANEL ID=PANEL1 BACKCOLOR=GREEN RUNAT=SERVER>
SUELDO<ASP:TEXTBOX ID=SUELDO BACKCOLOR=YELLOW
RUNAT=SERVER/><BR>
RESULTADO<ASP:LABEL ID=RESULTADO BORDERSTYLE=3
RUNAT=SERVER/><BR>
<ASP:BUTTON TEXT=OK ONCLICK=EVENTO1 TOOLTIP="CLICK HERE
POR FAVOR" RUNAT=SERVER/>
</ASP:PANEL></FORM></HTML>
Observar como agregar atributos a los objetos o controles de tipo webcontrols
Prog5.vb
Imports System
Imports System.Web
Imports System.Web.UI
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
24
Imports System.Web.UI.WebControls
PUBLIC CLASS PROG5 : Inherits Page
' CREANDO Y ENLAZANDO CONTROLES A FORM3.ASPX
PUBLIC SUELDO AS TEXTBOX
PUBLIC RESULTADO AS LABEL
' programando evento clik de prog3.aspx
PUBLIC SUB EVENTO1(Sender As Object, E As EventArgs)
IF SUELDO.TEXT > 3000 THEN
RESULTADO.TEXT="RICO"
ELSE
RESULTADO.TEXT="POBRE"
END IF
END SUB
END CLASS
Recordar que es vlido usar ms de una instruccin dentro del grupo cierto o
falso del if.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
25
Condiciones Compuestas
En muchas ocasiones es necesario presentar ms de una condicin para su
evaluacin al computador.
Por ejemplo que el computador muestre la boleta de un alumno si este estudia
la carrera de medicina y su promedio de calificaciones es mayor de 70.
En visual Basic net una condicin compuesta se define como dos o ms
condiciones simples unidas por los llamados operadores lgicos.
Los operadores lgicos que visual Basic net reconoce son:
Operador Significado
and
or
not
y logico
o logico
negacion
Ejemplo
if carrera = medicina and promedio > 70 then
instrucciones
else
instrucciones
end if
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
26
En visual Basic net para que el compilador evale como CIERTA una condicin
compuesta que contiene el operador lgico AND, las dos condiciones simples
deben ser ciertas.
Para que el computador evale como CIERTA una condicin compuesta que
contiene el operador lgico OR, basta con que una de las condiciones simples
sea cierta.
La cantidad total de casos posibles cuando se unen dos o ms condiciones
simples est dada por la relacin
donde n = cantidad de condiciones, la
primera mitad de ellos empieza en cierto y la segunda mitad en falso.
Ejemplo, si formamos una condicin compuesta con dos condiciones simples y
el operador lgico AND, la cantidad total de casos posibles serian
, y se
puede construir la siguiente tabla de verdad. Instruccion Select Case
Tambin existen ocasiones o programas donde se exige evaluar muchas
condiciones a la vez, en estos casos o se usa una condicin compuesta muy
grande o se debe intentar convertir el problema a uno que se pueda resolver
usando la instruccin SELECT CASE.
Esta instruccin es una instruccin de decisin mltiple donde el compilador
prueba o busca el valor contenido en una variable ENTERA, CHARACTER,
STRING contra una lista de constantes apropiadas, es decir enteras, carcter o
strings, cuando el computador encuentra el valor de igualdad entre variable y
constante entonces ejecuta el grupo de instrucciones asociados a dicha
constante, si no encuentra el valor de igualdad entre variable y constante,
entonces ejecuta un grupo de instrucciones asociados a un default, aunque
este ltimo es opcional.
El formato en visual Basic net de esta instruccin es el siguiente;
capturar o asignar variable de condicin
Select Case variableopcion
case const1 instruccion(es)
case const2 instruccion(es)
case const3 Instruccion(es)
Case Else instruccion(es)
End Select
prog6.aspx
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
27
<HTML>
<FORM RUNAT=SERVER>
DAME UNA LETRA<ASP:TEXTBOX ID=LETRA RUNAT=SERVER/><BR>
ANIMALITO<ASP:TEXTBOX ID=ANIMALITO BACKCOLOR=AZURE
RUNAT=SERVER/><BR>
<ASP:BUTTON TEXT=OK ONCLICK=EVENTO1 RUNAT=SERVER/><BR>
</FORM></HTML>
<SCRIPT LANGUAGE=VB RUNAT=SERVER>
SUB EVENTO1(Sender As Object, E As EventArgs)
SELECT CASE LETRA.TEXT
CASE "A"
ANIMALITO.TEXT = "AGUILA"
CASE "B", "b"
ANIMALITO.TEXT = "BACA"
CASE "C"
DIM ALFA AS INTEGER
ALFA = 100 + 5
' observar como se encadenan strings usando simbolo &
ANIMALITO.TEXT = ALFA & " CABALLO"
CASE ELSE
ANIMALITO.TEXT="NO HAY"
END SELECT
END SUB
</SCRIPT>
Es el primer modelo de visual Basic net aspx, el otro modelo VB les toca a
ustedes y la nica nota digna de tomar en cuenta es que se pueden usar ms
de dos instrucciones en cada case.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
28
29
Radiobuttonlist:
prog11.aspx
<html>
<form runat=server>
sexo:<br>
<asp:radiobuttonlist id=sexo runat=server>
<asp:listitem text=masculino runat=server />
<asp:listitem text=femenino runat=server />
<asp:listitem text=neutro runat=server />
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
30
</asp:radiobuttonlist>
<asp:button onclick=evento1 text=ok runat=server /><br>
<asp:label id=sex runat=server /><br>
</form></html>
<script language=vb runat=server>
sub evenmto1(sender as object, e as eventargs)
' como es list usar selecteditem
sex.text=sexo.selecteditem.text
end sub
</script>
Igual que checkboxlist es decir agregarle un ID al radiobutonlist, y un monton
de listitem's y programarlo con la propiedad selecteditem que queda apuntando
al radiobuton que seleciono el usuario.
Corrida prog11.aspx
Ciclo for
Instrucciones para ciclos resuelven el problema de repetir todo el programa o
cierta parte del programa ms de una vez.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
31
En visual Basic net este ciclo es uno de los ms usados para repetir una
secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de
veces que se quiere que se ejecute una instruccin simple o compuesta.
Su formato general es:
for varciclo=valorinicial to valorfinal [step incr o decr]
instruccion(es)
netx
ejemplo
codigo prog12.aspx y recuerden subirlo y pedirlo con:
<html>
<form runat=server>
<asp:listbox id=lista rows=10 runat=server></asp:listbox>
<asp:button text=ok onclick=evento1 runat=server/><br>
</form></html>
<script language=vb runat=server>
sub evento1(sender as object, e as eventargs)
dim x as integer
lista.items.clear
for x = 1 to 10
lista.items.add(x & "= mama")
next x
end sub
</script>
notas:
O se usan muchos webcontrols label o textbox para desplegar todo lo que
despliega el ciclo for o se esta usando mejor un objeto listbox para procesar el
conjunto de datos, recordar que listbox, dropdownlist, comboboxlist, etc son
objetos similares y por tanto se pueden usar para estos problemas.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
32
Casos Particulares:
1.- El ciclo comienza en uno y se incrementa de uno en uno, este es el caso
mas general.
2.- Pero el valor inicial puede se diferente de uno, ejemplo;
FOR X=5 TO 28
Response.write X
NEXT
3.- Incluso el valor inicial puede ser negativo, ejemplo;
FOR X= -5 TO 18
Response.write X
NEXT
4.- Los incrementos tambien pueden ser diferentes al de uno en uno, ej.;
FOR X=1 TO 50 STEP 4
Response.write X
NEXT
5.- Incluso pueden ser decrementos, solo que en este caso, recordar;
5.1.- el valor inicial de la variable debe ser mayor que el valor final y usar un
step negativo.
FOR X=100 TO 20 STEP - 5
Response.write X
NEXT
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
33
Control de Programa
Ciclo do While Loop
En visual Basic net este ciclo el cuerpo de instrucciones se ejecuta mientras
una condicin permanezca como verdadera en el momento en que la condicin
se convierte en falsa el ciclo termina.
Su formato general es:
Cargar o inicializar variable de condicin
do while condicion(es)
instruccion(es) ciertas
instruccion(es) de salida de ciclo
loop
prog14.aspx:( soy supersticioso)
<html>
<form runat=server>
<asp:listbox id=lista rows=10 runat=server></asp:listbox>
<asp:button text=ok onclick=evento1 runat=server/><br>
</form></html>
<script language=vb runat=server>
sub evento1(sender as object, e as eventargs)
dim x as integer
x=1
lista.items.clear
do while x <= 10
lista.items.add(x & "= gato")
x = x+ 1
loop
end sub
</script>
corrida prog14.aspx
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
34
En visual Basic net While puede llevar dos condiciones en este caso inicializar
2 variables de condicin y cuidar que existan 2 de rompimiento o terminacin
de ciclo.
El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo
de instrucciones.
La condicin puede ser simple o compuesta.
A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada
o prueba por arriba porque este ciclo evala primero la condicin y
posteriormente ejecuta las instrucciones.
Control de Programa
CICLO DO LOOP WHILE
En visual Basic net su diferencia bsica con el ciclo do whileloop es que la
prueba de condicin es hecha al finalizar el ciclo, es decir las instrucciones se
ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al
final evala la condicin;
Tambin se le conoce por esta razn como ciclo de condicin de salida.
Su formato general es:
Cargar o inicializar variable de condicin
do
instruccion(es) ciertas
instruccion(es) de salida de ciclo
loop while condicion(es)
prog15.aspx
<html>
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
35
<form runat=server>
<asp:listbox id=lista rows=10 runat=server></asp:listbox>
<asp:button text=ok onclick=evento1 runat=server/><br>
</form></html>
<script language=vb runat=server>
sub evento1(sender as object, e as eventargs)
dim x as integer
x=1
lista.items.clear
do
lista.items.add(x & "= raton")
x = x+ 1
loop while x <= 10
end sub
</script>
corrida:
Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa
desde un principio el cuerpo de instrucciones se ejecutara por lo menos una
vez.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
36
37
38
Los procesos normales con una lista o con sus elementos, incluyen declarar
toda la lista, capturar sus elementos, desplegarlos, realizar operaciones con
ellos, desplegarlos, etc.
Para declarar una lista se usa el siguiente formato;
SHARED DIM NOMLISTA(CANT ELEMENTOS -1) AS TIPODATO
Shared(compartido), se usa cuando la lista se tenga que compartir entre varias
subutinas, observar que cada botn de comando en un programa empieza con
sub-end sub, si un programa tiene varias subrutinas que compartan la misma
lista, dicha lista deber ser SHARED.
La cantidad de elementos-1, significa que si se quiere una lista de 5 ciudades
por ejemplo su declaracin ser shared dim ciudad(4) as string, la razn de
esto es que visual Basic empieza una lista por el elemento o rengln cero(0),
por tanto cuando se pide crear una lista de 4 ciudades, visual Basic net le
agrega el rengln o elemento 0, que en total daran 5 ciudades.
Es tambin importante recordar que un arreglo en visual Basic net es realmente
un objeto derivado de la clase SYSTEM.ARRAY.
Recordar tambien que como objeto arreglo, tambin puede usar una serie de
metodos pertenecientes a dicha clase system.array, los mtodos principales de
dicha clase y por tanto de los arreglos derivados de la misma es:
ARREGLOS TIPO TABLA
En visual Basic net un arreglo tipo tabla se define como un conjunto de datos
del mismo tipo organizados en dos o ms columnas y uno o ms renglones.
Para procesar (recordar solo operaciones y comparaciones) internamente
todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para
controlar rengln y uno interno para controlar columna.
Los elementos de la tabla se debern simbolizar con el nombre de la tabla y 2
subndices, el primer subndice referencia al rengln y el siguiente subndice
referencia la columna los dos dentro del mismo corchete.
La declaracin de una tabla ser de acuerdo al siguiente formato:
SHARED DIM NOMTABLA(RENG-1,COL-1) AS TIPODATO
Ej: SHARED DIM SUELDO(3,4) AS DOUBLE RECORDAR QUE VA A
GENERAR UNA MATRIZ QUE TENDRA CUATRO RENGLONES Y CINCO
COLUMNAS EMPIEZA EN SUELDO(0,0)
Para capturar sus elementos, usaremos un webcontrol textbox y un button de
captura, solo tener cuidado o mucho control sobre los ndices ren y col como lo
muestra el ejemplo.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
39
Para efectuar otros procesos tales como operaciones, despliegue con todos los
elementos de la tabla se debern usar 2 ciclos, un for externo para controlar
rengln y un for interno para controlar columna.
Prog17.aspx
<html>
<form runat=server>
ren<asp:textbox id=ren size=2 value=0 runat=server/>
col<asp:textbox id=col size=2 value=0 runat=server/><br>
dame calif<asp:textbox id=cal size=10 runat=server/>
<asp:button text=cargar onclick=cargar runat=server/><br>
<asp:button text=procesar onclick=proceso runat=server/><br>
</form></html>
<script language=vb runat=server>
' declarando lista global
shared dim calif(1,2) as integer
' recordar realmente son 2 renglones y tres columnas sub cargar(sender as
object, e as eventargs)
calif(ren.text,col.text)=cal.text
col.text=col.text + 1
cal.text=""
if col.text = 3 then
ren.text=ren.text+1
col.text=0
end if
if ren.text=2 then
cal.text="yaaaaaa"
' en lugar de yaaaa usar ren.visible=false (esto de tarea)
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
40
end if
end sub
sub proceso(sender as object, e as eventargs)
' procesando y regalando 10 puntos a todos
dim r,c as integer
for r=0 to 1
for c=0 to 2
calif(r,c)=calif(r,c)+10
next c
next r
' desplegando usando objeto response del ado viejo
for r=0 to 1
for c=0 to 2
response.write(calif(r,c)& "..")
next c
response.write("<br>")
next r
end sub
</script>
Notas:
Observar el formato de declaracion en visual basic net y como se controlan los
indices de captura reng, col.
Para procesar los elementos se usan dos ciclos for y el formato tabla (reng,col).
Recordar que un programa visual basic NET es un conjunto de objetos de
diferente fuente interactuando entre si, en este problema se uso el objeto
RESPONSE y su metodo WRITE, este RESPONSE es un objeto que proviene
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
41
42
43
<html>
<form runat=server>
edad<asp:textbox id=dato runat=server/>
<asp:button text=insertar onclick=insertar runat=server/><br>
<asp:listbox id=lista rows=5 runat=server></asp:listbox>
<asp:button text=procesar onclick=procesar runat=server/><br>
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
44
</form></html>
<script language=vb runat=server>
sub insertar(sender as object, e as eventargs)
lista.items.add(dato.text)
dato.text=""
end sub
sub procesar(sender as object, e as eventargs) dim reng, cant, meses as
integer
cant=lista.items.count
for reng=0 to cant-1
meses=lista.items(reng).text
meses=meses * 12
lista.items(reng).text=meses
next reng
end sub
</script>
Recordar que el primer indice en un ListBox es el cero por eso el ciclo va desde
el cero hasta la cantidad de elementos menos uno.
Corrida:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
45
como ultima nota importante es que en visual basic net existen otros dos
controles que pueden comportarse y usar los mismos metodos asociados a
listbox, estos controles son el combobox y datalist en proximos cursos se
incluiran como temas extras)
INGRESOS POR VENTAS MENSUALES
MILLONES DE PESOS
AB
ENE FEB MAR
R
Suc A 1
2
3
4
Suc B 5
6
7
8
Suc C 9
10 11 12
Recordar que son los datos numericos internos quienes se procesan (es decir
se capturan, se realizan operaciones con ellos, se despliegan, etc.), es la
informacion externa quien le da sentido.
Es importante tambien entender que un objeto TABLE es una coleccion o
conjunto de objetos de tipo TABLEROW ademas de que cada celda de cada
renglon tambien es un objeto de tipo TABLECELL.
Algunas de sus propiedades y metodos mas interesantes que se usan en el
programa ejemplo son:
CellPadding.- Se usa para definir el tamano del marco o separador de la celdas
GridLine.- Se usa para indicar si el marco debera ser solo vertical, horizontal o
ambos.
Text.- Propiedad de la celda (TABLECELL) que se usa para manipular y
procesar el dato.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
46
Add.- Otra propiedad de CELL y tambien de ROW que se puede usar para
cargar un dato en una celda o una celda en un renglon.
Como se observa de las dos propiedades anteriores CELDA es el elemento
mas importante de una TABLA, CELDA tiene muchas propiedades y metodos y
en el caso particular de TEXT y ADD recordar que TEXT tiene las
caracteristicas de GET-SET que ya se ha analizado en temas anteriores y por
tanto sera mas util o usado que el metodo ADD.
Otro aspecto importante a recordar es que TABLE no permite edicion directa
por parte del usuario de sus celdas por ese motivo se usara un componente
externo TextBox para capturas asi como el evento click de un button apropiado.
Para procesar todos los elementos de la tabla, solo recordar que se deben
usar dos ciclos for uno externo para controlar renglones y uno interno para
controlar columna.
Si solo se quiere procesar un solo renglon o columna, entonces solo se
ocupara el ciclo contrario y el renglon o columna original se daran como
constantes.
Ejemplo prog19.aspx
47
48
end sub
sub procesar(sender as object, e as eventargs)
DIM temp, R, C AS INTEGER
procesando y sumandole 10 puntos al dato y desplegando
for r = 0 to 2
for c = 0 to 3
temp = tabla.rows(r).cells(c).text
Temp = temp + 10
Tabla.rows(r).cells(c).text = temp
Next c
Next r
End sub
</script>
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
49
Suc a 1
Suc b 4
Suc c 7
Suc d 10
totmes 22
promes 5.5
2
5
8
11
26
6.5
3
6
9
12
30
7.9
promsu
c
4
15
24
33
2
5
8
11
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
50
En este ejemplo aparte de la tabla se ocupan 4 listas dos para totales y dos
para promedios.
El Codigo para este tipo de problemas ya se dio en el tema de arreglos
normales tipo tabla.
PROCEDIMIENTOS Y FUNCIONES
PROCEDIMIENTOS O SUBRUTINAS
En visual basic net recordar que un objeto presenta tres aspectos, propiedades,
metodos y eventos, en esta unidad se analizan algunos elementos que
intervienen en la definicion de un metodo.
Estamos hablando de los llamados procedimientos y funciones que quede claro
que procedimientos y funciones son solo algunos aspectos (importantes) de la
definicion de un metodo, pero que existen elementos tan o mas importantes
que los analizados en esta unidad.
Un procedimiento o subrutina en visual basic net es un grupo de instrucciones,
variables, constantes, etc, que estan disenados con un proposito particular y
tiene su nombre propio.
Es decir un procedimiento es un modulo de un programa que realiza tareas
especificas y que no puede regresar valores al programa principal u a otro
procedimiento que lo este invocando.
Despue de escribir un procedimiento se usara su propio nombre como una sola
instruccion o llamada al procedimiento usando el formato:
CALL NOMPROC()
El formato para construir un procedimiento o subrutina en VISUAL BASIC NET
es:
Sub NomProc()
Instrucciones
End Sub
Un programa puede tener tantos procedimientos como se deseen, para hacer
una llamada o invocacion al procedimiento durante la ejecucion de un
programa solo se debera escribir el nombre del procedimiento y los parentesis
en blanco.
Prog20.aspx
<html>
<form runat=server>
edad<asp:textbox id=edad runat=server/><br>
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
51
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
52
53
54
Corrida prog21.aspx
55
<html>
<form runat=server>
<asp:listbox id=milista rows=5 runat=server></asp:listbox>
<asp:button text=ok evento1=calculo runat=server/>
</form></html>
<script language=vb runat=server>
sub evento1(Sender As Object, E As EventArgs)
' creando y cargando una lista local con 5 elementos
DIM lista() AS INTEGER={1,2,3,4,5}
' pasandola a un procedimiento
' observar que se pasa sin parentesis
CALL PROC1(lista)
' desplegando lista original y observar el resultado
dim r as integer
for r = 0 to 4
milista.items.add(lista(r))
next r
end sub
sub proc1(vector)
' recibiendola con otro nombre y
' sumando a vector + 100
dim r as integer
for r = 0 to 4
vector(r)=vector(r) + 100
next r
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
56
end sub
</script>
corrida prog24.aspx
57
58
tiempo ya esta creando un archivo en disco que se llamara igual que la tabla y
que automaticamente se convertira en un espejo de la tabla en memoria.
b.2) Aplicacion, que tiene la misma funcion que en el modelo anterior.
No confundir este concepto de tablas en base de datos con el concepto de
tablas vistos en el capitulo de arreglos.
Como se observa en este modelo es mas sencillo construir sistemas de
informacion puesto que la parte programatica se reduce ampliamente y este es
el modelo que seguimos en este curso de visual basic net
TABLAS VISUAL BASIC NET
En Visual Basic Net una Tabla simple, representa una unidad de informacion
de una entidad fisica o logica de informacion:
ej.:
Tabla Empleado:
Clave Empleado
Nombre Empleado
Direccion Empleado
Edad Empleado
Telefono Empleado
etc. Empleado
Tabla Proveedor:
Clave Proveedor
Nombre Proveedor
Empresa Proveedor
Telefono Proveedor
Fax Proveedor
Celular Proveedor
etc. Proveedor
Tabla Autos:
Numero de Serie
Modelo
Marca
Tipo
Color
Capacidad
etc.
REGLAS:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
59
Observar que cada tabla empieza con una clave generalmente de tipo
numerica.
Todos los elementos de la tabla solo hacen referencia hacia el mismo ente o
sujeto de informacion.
Cada elemento solo representa o debe contener un solo dato de informacion.
No se respetan o siguen al pie de la letra estos tres postulados y empiezan los
problemas al tiempo de programacion.
Tabla: Camisas
NUMCAMISA MARCA
ESTILO
MEDIDA COLOR MATERIAL
1
JEANS
SPORT
GRANDE AZUL
ALGODON
2
VOLIS
VESTIR
MEDIANA NEGRA POLIESTER
3
GENERICA CAMISETA LARGA MORADO RARON
Tabla: Clientes
NUMCLIENTE NOMCLIENTE DIRCLIENTE
TELCLIENTE
1
JUAN PEREZ AV ABA 2233
2345678
2
LUIS SANCHEZ CALLE ZETA 3434 4567899
3
ROSA MARES CALLEJON NORTE 567890
Recordar siempre, una tabla almacena o representa un conjunto de datos del
mismo tipo o entidad, la tabla de alumnos es para almacenar y manipular
muchos alumnos, la tabla de productos es para almacenar y manipular muchos
alumnos, en resumen si en un problema de informacion solo se presenta una
instancia o renglon de una entidad logica, entonces no es tabla, es un
encabezado.
TAREAS VISUAL BASIC NET
1.-construir en cuaderno las siguientes tablas, la mitad de ellas con el primer
formato y la segunda mitad con el segundo formato.
1.- PACIENTES
2.- PERROS
3.- COMPUTADORAS
4.- MERCANCIAS
5.- PELICULAS
6.- MEDICINAS
7.- MAESTROS
8.- CUENTAS POR COBRAR
9.- IMPRESORAS
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
60
10.- BANCOS
VISUAL BASIC NET TABLAS (CONTINUACION)
En Visual Basic net el trabajo correcto con bases de datos relacionales se
divide en dos grandes pasos o etapas bien diferenciadas entre si:
En la primera etapa se disena la tabla con sus campos, llaves y condiciones
especiales, luego se usa un paquete o programa de software especializado en
la construccion, mantenimiento y administracion de la base de datos, este
software se usa para convertir la tabla o tablas ya bien disenadas en un archivo
en disco.
Existe software especializado en bases de datos, los llamados servidores de
bases de datos, los tres mas comunes son SQL SERVER de Microsoft,
ORACLE Server de Oracle, MYSQL Open Source, en estos casos la base de
datos( o conjunto de tablas que tienen relaciones comunes entre si) residen en
un servidor de bases de datos especializado en algun lugar cercano o lejano en
una red chica, mediana o grande.
Otros paquetes o software mas pequenos y comunes tambien reciben el
nombre de RDBMS ( RELATIONAL DATA BASE MANAGEMENT SYSTEM ) o
sistemas administradores de bases de datos.
Este tipo de software se especializa en la creacion, mantenimiento, seguridad,
privacidad, etc. de un conjunto de tablas o mejor dicho una base de datos,
DBMS comunes son Access, Postgres, Visual Fox, Clipper, etc. Usaremos
Microsoft Access como nuestro generador de bases de datos y recordar que
una base de datos es en principio un conjunto de tablas que tienen y mantienen
relaciones entre si.
La segunda etapa consiste en construir la aplicacion o aplicaciones que ya
tendran acceso o podran manipular los datos contenidos en la tabla, estas
aplicaciones se escriben usando ya sea lenguajes clasicos de programacion
como VISUAL BASIC NET , DELPHI, COBOL, C#BUILDER, JAVA, PERL,
JSCRIPT, C# NET, etc.
DISENO Y CREACION DE UNA TABLA
El primer paso antes de usar el paquete correspondiente a esta tarea, es
disenar la tabla completamente, esto exige:
a) Nombre apropiado y determinacion de atributos y campos correspondientes.
b) Seleccionar y determinar el atributo principal o campo clave o llave primaria
que se utilizara como el identificador unico que permite diferenciar cada
instancia o renglon diferente dentro de la tabla.
c) Tambien se puede seleccionar otros campos que puedan servir mas
adelante para ordenar de manera diferente la tabla, es decir una tabla en
principio ya esta ordenada por campo clave por ejemplo, la matricula de un
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
61
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
62
4.- Ponerla en un lugar o folder adecuado y para este ejemplo llamarla mibase
(como se ve en la pantalla de arriba), usar el boton create.
5.- Aparece ahora la siguiente pantalla:
6.- Esta ultima pantalla permite construir una o mas tablas que contendra la
base de datos (mibase), observar que tambien permite agregarle mas
elementos a una base de datos (querys, forms, reports, etc, esperar un curso
de estos en programacionfacil) pero para este ejercicio solo agregar una tabla (
que se llamara mitabla) a la base de datos, para crear mitabla solo usar el
boton new y Access ofrecera construirla de varias maneras distintas de
preferencia seleccionar la manera DESIGN VIEW que les mandara la siguiente
pantalla:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
63
7.- En FIELD NAME escibimos el nombre del campo, en DATA TYPE solo click
y salen las opciones de los diversos tipos de datos que ofrece access, en
DESCRIPTION se puede poner una descripcion de los propositos del campo,
para el ejemplo que se esta mostrando se usa number para la clave, texto con
tamano 30 caracteres (seleccionar abajo) para nombre y number para edad.
8.- Observar que CLAVE tiene una pequena llave a un lado, esto significa que
CLAVE es la llave primaria de la tabla, para marcarla como llave primaria
primero seleccionar todo el renglon haciendo un click en el cuadrito gris que
esta antes de la palabra clave y luego hacer un click derecho y del minimenu
que sale usar opcion primary key, es muy importante que el tipo de dato de
la clave sea de tipo NUMBER.
9.- Ahora cerrar la tabla usando la [x] de arriba y access lpreguntara con que
nombre se llamara la tabla, ponerle mitabla.
10.- Ahora se regresa a la vista de diseno de Access y ya estara registrada
mitabla en mibase, como lo muestra el sigiente grafico:
11.- Usar ahora boton OPEN, para cargar unos cuantos datos o renglones de
prueba como lo muestra el siguiente ejemplo:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
64
12.- Cerrar microsoft access con la [x] de arriba y si dios quiere ya se tiene
construida MIBASE.MDB que a su vez contiene MITABLA que a su vez
contiene unos cuantos renglones de datos.
13.- El ultimo paso en visual basic net es subirla a tu sitio mibase.mdb para que
ya este lista y preparada para procesarla con ASP NET y VISUAL BASIC NET
ADO NET ACTIVE X DATA OBJECT
El nuevo modelo de datos de microsoft es ado net este modelo descansa en
una serie de objetos especializados que facilitan el procesamiento de una base
de datos.
65
datos por supuesto que el procedimiento que se dio para crearla en access en
el tema anterior no se puede usar para crear y cargar una base de datos en un
servidor de bases de datos. (esperar libros de bases de datos en
programacionfacil en un proximo futuro).
El modo de comunicarse entre nuestro programa visual basic net o aplicacion y
la base de datos (ya sea fisica o un dbserver) implica que ambos manejen un
lenguaje de programacion comun, es decir no se puede mandar una instruccion
en c# o en borland delphi java a la base de datos y ademas esperar que esta
ultima la entienda ( para entender esto, una razon muy sencilla es que la base
de datos tendria que conocer o comprender todos los lenguajes de
programacion), para resolver este problema de comunicacion es que se usa un
lenguaje comun de bases de datos que tanto los lenguajes de programacion
existentes como las bases de datos entienden, este lenguaje comun de bases
de datos es el SQL (structured query languaje) o lenguaje estructurado de
consultas.
En otras palabras ustedes mis estimados lectores tendran que aprender este
nuevo lenguaje de programacion, el SQL ( structured query language ), la
buena noticia es que es un lenguaje con muy pocas instrucciones y ademas
existen muy buenos tutoriales en internet que hay que buscar y estudiar.
PROPAGANDA, ya ven que en este curso estan aprendiendo el lenguaje de
programacion VISUAL BASIC NET, el lenguaje de programacion HTML y ahora
el lenguaje de programacion SQL, !wow! tres lenguajes por el precio de uno.
Bueno las principales instrucciones de SQL que se usan en este curso son
SELECT, INSERT, UPDATE y DELETE.
La pregunta es ahora como mandamos las instrucciones sql a la base de datos,
la respuesta son los OBJETOS ADO.NET que estamos analizando en orden y
proposito de uso.
OBJETO CONNECTION:- objeto que se utiliza para establecer una coneccion
o enlace a la base de datos.
Este objeto primero se tendra que crear en el programa y luego se tendra que
cargar con dos parametros (ver ejemplo mas abajo), el primer parametro es el
provedor o la fuente que proporcionara los datos, los provedores o fuentes de
datos que existen son:
sqlserver net data provider.- que se especializa en comunicarse y procesar
bases de datos construidas con microsof sql server v7.0
oledb.net data provider.- que se especializa en comunicarse y procesar bases
de datos que a la fecha del presente libro utilizen algunos de los siguientes
drivers, sqloledb (versiones anteriores de sql server de microsoft), msdaora
(oracle), microsoft.jet (access y algunos otros dbms de microsoft)
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
66
odbc.net .- bases de datos que usan odbc como medio de comunicacion con
otras bases de datos y aplicaciones, como nota a considerar odbc.net no esta
incluida por default en microsoft.net, se tiene que bajar de microsoft.
El segundo parametro es la propia base de datos con la cual se comunicara el
programa o aplicacion.
Ejemplo del objeto CONNECTION
DIM coneccion AS OLEDBCONNECTION
Coneccion = NEW
OLEDBCONNECTION("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\progfacil\lauro\mibase.mdb")
Es una sola string y los dos parametros mencionados van separados por el
punto y coma.
ATENCION es DATA SOURCE= no usar DATASOURCE= estan advertidos.
ejemplos de los otros poveedores o fuentes mencionados:
ejemplos de los otros poveedores o fuentes mencionados:
//Provider=MSDAORA;
Password=OLEDB
Data
Source=ORACLE8i7;
User
ID=OLEDB;
67
OleDbParameter("@NOMBRE",
orden.Parameters("@NOMBRE").Value = nombre
orden.Parameters.Add(new OleDbParameter("@PESO", OleDbType.Double))
orden.Parameters("@PESO").Value = edad
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
68
Observar que para cada variable parametro(@), se tienen que cargar dos
elementos, el valor y el tipo de dato correpondiente.
Aunque en valor se mandan string's, en oledbtype se hace un mapeo, relacion
o conversion al tipo de dato que se uso en access, tener mucho cuidado que
exista una relacion igual o cuando este pograma se ejecute el servidor les va a
mandar un error o excepcion de sql, que les intenta decir que el tipo de dato
que mandaron a la base de datos, no es igual al que se uso para crearlo en la
base de datos.
Los OLEDBTYPE ms comunes son:
BigInt A 64-bit signed integer (DBTYPE_I8). This maps to Int64.
Binary A stream of binary data (DBTYPE_BYTES). This maps to an Array of
type Byte.
Boolean A Boolean value (DBTYPE_BOOL). This maps to Boolean.
BSTR A null-terminated character
(DBTYPE_BSTR). This maps to String.
string
of
Unicode
characters
38
Double A floating point number within the range of -1.79E +308 through 1.79E
+308 (DBTYPE_R8). This maps to Double.
Empty No value (DBTYPE_EMPTY). This maps to Empty.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
69
70
Variant A special data type that can contain numeric, string, binary, or date
data, as well as the special values Empty and Null (DBTYPE_VARIANT). This
type is assumed if no other is specified. This maps to Object.
VarNumeric A variable-length numeric value (OleDbParameter only). This
maps to Decimal.
VarWChar A variable-length, null-terminated stream of Unicode characters
(OleDbParameter only). This maps to String.
WChar A null-terminated stream of Unicode characters (DBTYPE_WSTR). This
maps to String.
Fuente:microsoft net
Aun mas con el ejemplo anterior el objeto COMMAND esta construido y
preparado y cargado pero todavia no se manda desde el programa a la base de
datos, es decir le falta usar las siguientes tres propiedades, ejemplo;
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
71
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
72
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
73
74
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/></FORM>
<html>
<script runat=server>
' creando y cargando coneccion, adpater, dataset como variables globales
DIM coneccion AS OLEDBCONNECTION
DIM canal AS OLEDBDATAADAPTER
DIM tabla AS DATASET
SUB Page_Load(Sender As Object, E As EventArgs)
' enlazando coneccion a la base de datos
coneccion = NEW OLEDBCONNECTION("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=c:\progfacil\tusitio\mibase.mdb")
' cargando el adapter con la instruccion sql
canal = NEW OLEDBDATAADAPTER("select * from mitabla", coneccion)
' cargando el dataset
tabla = NEW DATASET()
canal.FILL(tabla, "mitabla")
' cargando el datagrid
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
' cerrando conneccion
coneccion.CLOSE()
END SUB
</script>
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
75
corrida prog26.aspx
76
descritas
del
adapter
por
ejemplo
Pero lo mas sencillo fue usar el metodo que se puso en el programa, es decir
crear el adapter y pasarle directamente la instruccion sql.
8.- Luego se creo el dataset y se cargo con toda la base de datos en disco,
entender esto bien, dataset puede quedar cargado con todas las tablas que
tenga la base de datos, por eso se usa un FILL para pasar al dataset solo una
de las tablas(mi tabla), esto da origen a dos notas:
8.1.- Al programar mas adelante se ocupara explicitamente indicarle al
compilador con cual tabla se va a trabajar, es por esta razon que se veran
instrucciones tales como tabla.tables[clientes].etc.etc. aqui se esta diciendo al
compilador que del dataset(TABLA) se va a realizar una proceso con la tabla
de clientes.
8.2.- Para procesar dos o mas tablas, entonces se tendra que usar mucho el
formato que se vio en la nota 8.1
9.- Al final se carga el datagrid , se pega( binding ) al dataset y se cierra la base
de datos.
TAREAS VISUAL BASIC NET
1.- Programa visual basic net donde construir y desplegar una primera base de
datos que contenga la primera tabla que disenaron en el tema de tablas.
2.- programa visual basic net donde construir una segunda base de datos que
contenga cuando menos tres de las tablas ya disenadas y desplegar cualquiera
de ellas usando una sola forma html, donde el usuario selecciona cual quiere
desplegar.
FILTROS SQL SELECT WHERE
Otro problema similar al anterior es el de filtros es decir en muchas ocasiones
es necesario obtener informacion acerca de un subconjunto de renglones de la
tabla.
Por ejemplo todos los estudiantes que sean mayores de 17 anos, todos los
clientes que sean de Tijuana, etc., a esto le llamamos filtros o condiciones.
Tambien se resuelve de manera similar al anterior, es decir usando la
instruccion select etc, from tabla, where CONDICION;
Codigo prog28.aspx
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
77
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
78
coneccion = NEW
OLEDBCONNECTION("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\progfacil\tusitio\mibase.mdb")
' creando y cargando canal con q y sus variables parametros apropiadas
DIM q AS STRING
q = "select * from mitabla where edad >= @EDAD"
canal=new OleDbDataAdapter(q, coneccion)
canal.SelectCommand.Parameters.Add(new OleDbParameter("@EDAD",
OleDbType.Integer))
canal.SelectCommand.Parameters("@EDAD").Value = EDAD.Text
' cargando el dataset
tabla = NEW DATASET()
canal.FILL(tabla, "mitabla")
' cargando el datagrid
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
' cerrando conneccion recordar que FILL NO OCUPA CERRAR
coneccion.CLOSE()
END SUB
</script>
Nota: siguen siendo combinaciones de los programas anteriores pero seria
prudente mejor usar dos combobox uno para la variable, otro para el operador
relacional y un text para el dato y mandar estos tres datos al prog28.aspx (se
ocupan varios command.parameters ()), pero eso queda de tarea.
Recordar tambien que bases de datos en microsoft net es solamente SQL SQL
SQL y se han usado tres versiones de select, por ejemplo si se usa en un
programa:
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
79
80
81
<script runat=server>
' creando y cargando coneccion, adpater, dataset, command
' como variables globales
DIM coneccion AS OLEDBCONNECTION
DIM canal AS OLEDBDATAADAPTER
DIM tabla AS DATASET
DIM orden AS OLEDBCOMMAND
SUB Page_Load(Sender As Object, E As EventArgs)
enlazando coneccion a la base de datos
Coneccion = NEW
OLEDBCONNECTION(Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\progfacil\tusitio\mibase.mdb)
cargando el adapter con la instruccion sql
Canal = NEW OLEDBDATAADAPTER(select * from mitabla, coneccion)
cargando el dataset
tabla = NEW DATASET()
canal.FILL(tabla, mitabla)
' cargando el datagrid
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = mitabla
TABLAGRID.DATABIND()
' cerrando conneccion
coneccion.CLOSE()
END SUB
SUB SUMAR(Sender As Object, E As EventArgs)
' variables a usar
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
82
DIM q AS STRING
q = UPDATE mitabla SET edad = edad * 12
orden = new OleDbCommand(q, coneccion)
orden.Connection.Open()
orden.ExecuteNonQuery()orden.Connection.Close()
'refrescando el datagrid
TABLAGRID.DataSource = tabla
TABLAGRID.DataMember= mitabla
TABLAGRID.DataBind()
END SUB
</script>
</code>
nota: como se observa se puede construir directamente la string q, y no usar
command.parameters(), si se esta muy seguro que los tipos de datos que se
mandan a disco son los apropiados para access.
Corrida prog29.aspx
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
83
Eliminacion es otro proceso simple y comun con las bases de datos el modelo
con ADO.NET que estamos usando hace este tipo de operaciones muy faciles:
La instruccion sql a usar es: DELETE FROM TABLA WHERE CONDICION
Prog30.aspx
<%@ PAGE LANGUAGE=VB %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<form runat=server>
clave a borrar<asp:textbox id=clave size=3 runat=server/>
<asp:button onclick=borrar text=borrar runat=server /><br>
<asp:datagrid id=tablagrid runat=server
width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false />
</FORM>
<script runat=server>
DIM coneccion AS OleDbConnection
DIM tabla AS DataSet
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
84
85
TABLAGRID.DataSource=tabla.Tables("mitabla").DefaultView
TABLAGRID.DataBind()
CLAVE.Text=""
END SUB
</script>
corrida prog30.aspx
86
87
88
FOR i=1 to 3
DIM datocajas AS STRING
Dim micaja As TextBox
micaja = CType(E.Item.Cells(I).Controls(0), TextBox)
datocajas = micaja.Text
orden.Parameters(nomcajas(i-1)).Value = Server.HtmlEncode(datocajas)
NEXT i
orden.Connection.Open()
orden.ExecuteNonQuery()
'poniendo otra vez el datagrid en nada
TABLAGRID.EditItemIndex = -1
orden.Connection.Close()
DespTabla()
END SUB
</script>
<body style="font: 10pt verdana">
<form runat="server">
<h3><font face="Verdana">EDICION O ACTUALIZACION DE
REGISTROS</font></h3>
<span id="Message" EnableViewState="false" style="font: arial 11pt;"
runat="server"/><p>
<ASP:DataGrid id="TABLAGRID" runat="server"
Width="400"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
89
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="DataGrid_Edit"
OnCancelCommand="DataGrid_Cancel"
OnUpdateCommand="DataGrid_Update"
DataKeyField="clave"
<Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel"
UpdateText="Update" ItemStyle-Wrap="false"/>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>
Para entender el codigo veamos la corrida completa:
Pantalla uno prog31.aspx
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
90
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
91
1.- con visual basic net construir aspx de edicion para sus tablas y bases de
datos
GRAFICOS SQL SELECT
Campos de graficos o de imagenes, se han convertido en elementos
importantes de cualquier base de datos.
Para manejar este elemento con ado asp net existen dos maneras:
1.- Agregar un campo BLOB a la tabla en microsoft access y usar componentes
asp net especializados en imagenes tanto para subirlas como para desplegar la
imagen.
Este metodo provoca que la base de datos crezca mucho recordar que una
imagen aun de tipo jpg ocupa mucho espacio.
2.- El segundo metodo es mas sencillo, primero subir las imagenes ( de
preferencia jpg ) con un ftp normal a tusitio y despues agregar un objeto asp
net imageurl(recordar que en la primera unidad se indico que estudiaran todos
los objetos webcontrol )en el programa y ademas agregar un campo de texto
llamado fotourl o foto a la tabla en microsoft access y grabar la direccion http de
la imagen en este campo.
Despues solo cargar este objeto asp net imageurl en la pagina que se
construira que no es otra cosa que el programa de busqueda con el despliegue
del campo extra, como lo muestra el programa ejemplo.
Prog32.aspx
<%@ PAGE LANGUAGE=VB %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<FORM RUNAT=SERVER>
CLAVE A BUSCAR<ASP:TEXTBOX ID=CLAVE SIZE=3 RUNAT=SERVER/>
<ASP:BUTTON ONCLICK=BUSCAR TEXT=BUSCAR RUNAT=SERVER
/><BR>
<ASP:IMAGE ID=FOTO IMAGEURL=" " RUNAT=SERVER/>
<ASP:DATAGRID ID=TABLAGRID RUNAT=SERVER
Width=400
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
92
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/>
</FORM>
<html>
<script runat=server>
'creando y cargando la coneccion a la base de datos variable global
DIM coneccion AS OleDbConnection=new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\progfacil\tusitio\mibase.mdb")
SUB BUSCAR (Sender As Object,E as EventArgs)
DIM q AS String
q = "select * from mitabla where clave = @CLAVE"
DIM canal as OleDbDataAdapter = new OleDbDataAdapter(q, coneccion)
canal.SelectCommand.Parameters.Add(new OleDbParameter("@CLAVE",
OleDbType.Integer))
canal.SelectCommand.Parameters("@CLAVE").Value = CLAVE.Text
DIM tabla as DataSet = new DataSet()
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
93
TABLAGRID.DataMember="mitabla"
TABLAGRID.DataBind()
'cargando el objeto imageurl
FOTO.ImageUrl=tabla.Tables("mitabla").Rows(0)(3).ToString()
END SUB
</script>
corrida: prog32.aspx
Recordar que para que no salga el campo fotourl en el datagrid el select de sql
puede pedirse como select campo1, campo2, campo.. from mitabla etcetera.
Y el objeto IMAGE de visual basic net tiene muchas propiedades usenlas.
Proyecto construir un sistema informacion contable administrativo o financiero
completo integrado con todas las operaciones sql usando al menos dos tablas
usando programacion visual basic net .
tan tan el curso se acabo y esten pendiente de los proximos de sql mysql perl
php perlscript javascript jscript xml c# net et al
Properties
Property
Description
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
CommandText
CommandTimeout
CommandType
Name
Prepared
Sets or returns a Boolean value that, if set to True, indicates that the
command should save a prepared version of the query before the first
execution
State
94
Connection Object
The ADO Connection Object is used to create an open connection to a data
source. Through this connection, you can access and manipulate a database.
If you want to access a database multiple times, you should establish a
connection using the Connection object. You can also make a connection to a
database by passing a connection string via a Command or Recordset object.
However, this type of connection is only good for one specific, single query.
ProgID
set objConnection=Server.CreateObject(ADODB.connection)
Properties
Property
Description
Attributes
CommandTimeout
ConnectionString
ConnectionTimeout Sets or returns the number of seconds to wait for a connection to open
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
DefaultDatabase
IsolationLevel
Mode
Provider
State
Version
95
Methods
Method
Description
BeginTrans
Cancel
Cancels an execution
Close
Closes a connection
Open
Opens a connection
OpenSchema Returns schema information from the provider about the data source
RollbackTrans Cancels any changes in the current transaction and ends the transaction
Events
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual
C++, and Visual J++ languages can handle events).
Event
Description
BeginTransComplete
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
Disconnect
ExecuteComplete
InfoMessage
96
WillExecute
Collections
Collection Description
Errors
Error Object
The ADO Error object contains details about data access errors that have been generated
during a single operation.
ADO generates one Error object for each error. Each Error object contains details of the
specific error, and are stored in the Errors collection. To access the errors, you must
refer to a specific connection.
To loop through the Errors collection:
Parameter Object
The ADO Parameter object provides information about a single parameter used in a
stored procedure or query.
A Parameter object is added to the Parameters Collection when it is created. The
Parameters Collection is associated with a specific Command object, which uses the
Collection to pass parameters in and out of stored procedures and queries.
Parameters can be used to create Parameterized Commands. These commands are (after
they have been defined and stored) using parameters to alter some details of the
command before it is executed. For example, an SQL SELECT statement could use a
parameter to define the criteria of a WHERE clause.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com
97
There are four types of parameters: input parameters, output parameters, input/output
parameters and return parameters.
Syntax
Properties
Property
Description
Attributes
Direction
Name
NumericScale
Sets or returns the number of digits stored to the right side of the decimal point
for a numeric value of a Parameter object
Precision
Size
Type
Value
Methods
Method
Description
Property Object
The ADO Property object represents a dynamic characteristic of an ADO object that is
defined by the provider.
Each provider that talks with ADO has different ways of interacting with ADO. Therefore, ADO
needs to store information about the provider in some way. The solution is that the provider
gives specific information (dynamic properties) to ADO. ADO stores each provider property in a
Property object that is again stored in the Properties Collection. The Collection is assigned to
either a Command object, Connection object, Field object, or a Recordset object.
Av. Fitzcarrald N 320 3er Piso - Tlf: 424862 - Cel: 943-634529 E-mail: insfotec@hotmail.com