UNIDAD 5: VISUAL BASIC INTRODUCION A LAS BASES DE DATOS

TEMA 11: OPERACIONES CON CAMPOS VISUAL BASIC CGI

Este es tambien un caso comun con elementos de una tabla, sin embargo es tambien facil de resolver.

Es necesario recordar primero algunas cosas elementales:

1.- Recordar que el numero de columna en una tabla empieza en 0, esto es que para realizar alguna operacion por ejemplo la columna edad del ejemplo que estamos siguiendo, su numero de columna es la 2.

2.- La operacion que se plantee se puede realizar con todos los renglones de la tabla o con un solo renglon de la tabla(del dataset), para procesar todos los renglones se usa un ciclo for, si solo se quiere procesar un solo renglon o una celda o columna nada mas, solo recordar GET-SET y solo usar un tabla.tables.rows®© con las constantes apropiadas.

3.- Para realizar aritmetica con toda una columna, solo usar el GET-SET de tabla.tables.rows(ren)(col) para leer(get)o cargar(set), en leer recordar que saldra una string y en cargar recordar que se tendra que cargar tambien una string, otra vez;

string alfa=tabla.Tables(“Clientes”).Rows(4)(5).ToString() –>carga como string la variable alfa con el dato que se tiene en la sexta columna del quinto renglon de la tabla clientes.

tabla.Tables(“alumnos”).Rows(2)(3)=“MAMA” –> carga con la string MAMA la cuarta columna del tercer renglon de la tabla alumnos.

5.- En el ejemplo se realiza la operacion con todos los renglones de la tabla y no olvidar que se tiene que usar la instruccion sql Update para que la nueva informacion se actualize en disco, recordar que los cambios que se hacen a la tabla es realmente al dataset, que a su vez es una tabla o base de datos en la memoria de la maquina del cliente o usuario, y estos cambios hay que actualizarlos o pasarlos o UPDATE a la base de datos en disco.

El siguiente programa le aumenta 50 a todas las edades.

Prog22.vb o exe ←- Recordar que un programa ejecutable se puede correr directamente desde tu sitio en programacionfacil con la direccion, http://programacionfacil.com/cgi-bin/tusitio/prog22.exe

Ademas que no tiene caso hacer una forma22.html(esa la construyen ustedes de tarea)


Imports System

Imports System.Data

Imports System.Data.OleDb

Imports Microsoft.VisualBasic

PUBLIC CLASS prog18

' creando y cargando coneccion, adpater, dataset como variables globales

SHARED DIM coneccion AS OLEDBCONNECTION

SHARED DIM canal AS OLEDBDATAADAPTER

SHARED DIM tabla AS DATASET

SHARED DIM orden as OLEDBCOMMAND

PUBLIC SHARED SUB MAIN()

' 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")

'empezamos operacion

dim temp, r, cren, nvaclave as integer

dim q as string

'calculando cantidad de renglones del dataset

cren = tabla.Tables("mitabla").Rows.Count

' solo se usa for ren porque col es constante

for r=0 to cren-1

' cargando clave del renglon actual a actualizar

' recordar que se visitara cada renglon de la tabla en memoria

nvaclave =tabla.Tables("mitabla").Rows(r)(0)

'sacando el valor de la columna EDAD y cargando en

'la variable temp recordad GET-SET

temp = tabla.Tables("mitabla").Rows(r)(2)

' sumandole 50 a todas las edades

temp = temp + 50

' cargando ahora columna EDAD de dataset con

' el nuevo valor de temp (RECORDAR GET-SET)

tabla.Tables("mitabla").Rows(r)(2) = temp

' actualizar tambien la base de datos

' usado UPDATE de sql

q = "UPDATE mitabla SET edad = "&temp.ToString() &" where clave= " &nvaclave.ToString()

orden = new OleDbCommand(q, coneccion)

orden.Connection.Open()

orden.ExecuteNonQuery()

orden.Connection.Close()

next r

' avisando que ya se termino

System.Console.WriteLine("Content-Type:text/html" & vbCrLf)

System.Console.WriteLine("SUMA TERMINADA USAR PROG18 PARA DESPLEGAR")

' o mejor aun construir aqui, EN y UNA forma dinamica el prog18.HTML

' cerrando todo

coneccion.Close()

END SUB

END CLASS

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 prog22.exe

image390.jpg

corrida prog18.exe

image391.jpg

como que lo animalitos ya estan viejitos??

TAREAS PROGRAMACION VISUAL BASIC CGI :

1.- construir una tabla en access que traiga matricula, nombre, calif1, calif2, calif3 y promedio, cargar en access unos 5 renglones de alumnos, no cargar promedio, el promedio lo deberan calcular con un programa.

 




Google
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Politica de Privacidad