Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NET a su alcance
Nivel Bsico/Intermedio
DDL: permiten crear y definir nuevas bases de datos, tablas, campos e ndices.
DML: permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Descripcin
CREATE
DROP
ALTER
SELECT
Permite consultar registros de una base de datos que cumplan una condicin
determinada.
INSERT
UPDATE
DELETE
Descripcin
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Uso
AND
OR
NOT
BETWEEN
LIKE
IN
ALL
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
>=
Igual que
Descripcin
AVG
COUNT
SUM
MAX
MIN
Tipo de Dato
varchar
varchar
varchar
varchar
varchar
varchar
date
Longitud
15
20
20
25
20
20
Nombres
Carlos
Mara
Jos
Cristian
Rosa
Andrs
Anglica
Johana
Mario
Apellidos
Romero
Castro
Pelez
Vanegas
Cetina
Vanegas
Morales
Duarte
Vargas
Direccin
Cra 7 # 20-10
Calle 25 # 25-10
Av. 35 # 32-45
Cra 7 # 29-58
Calle 17 # 21-14
Tranvs 48 # 22-10
Cra 68 # 21-11
Cra 2 # 45-38
Calle 1 # 99-18
Telfono
4152584
3692581
1234567
9874561
3571596
8527419
6549518
9637534
6598743
Ciudad_nac
Bogota
Cali
Medelln
Manizales
Buga
Bogot
Medelln
Bogot
Medelln
Fecha_nac
01/02/1980
15/03/1984
20/05/1960
31/08/1974
15/12/1985
10/04/1978
20/06/1981
12/06/1988
28/08/1980
12.3.5 INSERT
INSERT permite insertar datos en una tabla. Su formato es:
INSERT INTO nombre_tabla (campo1, campo2,.) VALUES (valor1, valor2,.)
12.3.6 ALTER
SQL ALTER permite insertar un nuevo campo en una tabla. Su formato es:
ALTER TABLE nombre_tabla ADD nombre_campo tipo_de_dato ()
12.3.7 SELECT
La instruccin de seleccin SELECT permite seleccionar datos de una tabla. Su
formato es:
SELECT campos_tabla FROM nombre_tabla
c. Si se desea obtener los registros cuya identificacin sea mayores o iguales a 150,
se debe utilizar la clusula WHERE que especifica las condiciones que deben
reunir los registros que se van a seleccionar.
SELECT * FROM usuarios WHERE identificacin>=150
d. Si se desea obtener los registros cuyos apellidos sean Vanegas o Cetina, se debe
utilizar el operador IN que especifica los registros que se quieren visualizar de
una tabla.
SELECT apellidos FROM usuarios WHERE apellidos IN (Vanegas,Cetina)
h. Si se desea obtener los registros donde la cuarta letra del nombre sea una a.
i.
SELECT * FROM usuarios WHERE nombres LIKE
a%
j. Si se desea obtener los registros cuya identificacin este entre el intervalo 110 y
150, se debe utilizar la clusula BETWEEN, que sirve para especificar un
intervalo de valores.
SELECT * FROM usuarios WHERE identificacin BETWEEN 110 AND 150
12.3.8 DELETE
La sentencia SQL de eliminacin de datos DELETE permite borrar todos o un grupo
especifico de registros de una tabla. Su formato es:
DELETE FROM nombre_tabla
b. Para eliminar solamente los registros cuya identificacin sea mayor de 180.
DELETE FROM usuarios WHERE identificacin >180
12.3.9 UPDATE
La sentencia SQL de actualizacin UPDATE permite actualizar un campo de una tabla.
Su formato es:
UPDATE nombre_tabla SET nombre_campo=valor
b. Para actualizar el campo credito en -50000 para los registros cuya ciudad sea
igual a Buga.
UPDATE usuarios SET credito=credito-50000 WHERE ciudad=Buga
Tipo de Dato
varchar
varchar
date
date
varchar
Longitud
15
15
20
25
30
Identificacin
100
101
100
112
101
118
101
100
101
fechacompra
01/02/2006
15/03/2006
20/05/2006
31/08/2006
15/12/2006
10/04/2006
20/06/2006
12/06/2006
28/08/2006
fechavence
01/02/2006
15/03/2006
20/06/2006
31/10/2006
30/12/2006
10/06/2006
20/07/2006
12/09/2006
28/09/2006
observacion
Pago de contado
Descuento del 5%
Descuento del 2%
Pago a sesenta das
Pago de contado
Sin descuento
Descuento del 5%
Pago a noventa das
Pago de contado
usuarios.apellidos,
pedidos.fechavence,
Label2
Form1
Propiedad
Name
Name
Text
Name
Text
Font
Name
Text
Font
Name
Text
Valor
datos
botoncargar
Cargar registros tabla.
lblbd
Conexin a la base de datos bdlibrovbnet.mdf de SQL
SERVER.
True
lbltabla
Tabla : Clientes
True
formulario
Conexin a una base de datos SQL SERVER.
Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el espacio de
nombres System.Data.SqlClient:
Imports System.Data.SqlClient
Public Class Formulario
.
End Class
Try
adaptadordedatos = New SqlDataAdapter(seleccion, conexion)
adaptadordedatos.Fill(tabladedatos)
tabla.DataSource = tabladedatos
Catch ex As Exception
MsgBox("Error: " & ex.Message)
End Try
Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos bdlibrovbnet.mdf de SQL Server. La cadena de
conexin debe contener como mnimo los siguientes parmetros:
Ejecutar el proyecto
Form1
Propiedad
Name
Name
Text
Font
Name
Text
Valor
datos
lblbd
Conexin a SQL Server utilizando el
Explorador de servidores.
True
formulario
Conexin a SQL Server - Explorador de
servidores.
Explorador de servidores
Cambie el nombre de la conexin que all aparece por cadenaconexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Figura 12.14 Ventana de eleccin de objetos de la base de datos.
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por datosclientes y pulse el botn Finalizar para visualizar la siguiente figura:
Figura 12.15 DataGridView con los campos de la tabla clientes.
Ejecutar el proyecto
llamada
Propiedad
Name
Text
Valor
formulario
Conexin a una base de datos SQL
Server.
, se visualizar la ventana de
Del men Datos seleccione la opcin Agregar nuevo orgen de datos, para
visualizar la siguiente figura:
Figura 12.20 Asistente para la configuracin de orgenes de datos.
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
Figura 12.25. Proyecto con la base de datos y el orgen de datos agregados.
Ejecutar el proyecto
Con los iconos del objeto BindingSource se podr desplazar por cada uno de los
registros de la tabla.
Estando en modo edicin se pudo apreciar en la ventana Orgenes de datos que
al pulsar el signo (+) al lado de la tabla clientes se despliegan los campos de est.
Tambin es posible arrastrar cada uno de los campos de la tabla hacia el formulario.
Realice esta operacin hasta obtener la siguiente figura:
Figura 12.29 Formulario con los campos de la tabla clientes.
Form1
Propiedad
Name
Text
Name
Text
Name
Text
Name
Name
Text
Font- Bold
Name
Text
Valor
botonver
Ver registros tabla
botonnuevo
Nuevo registro
botonguardar
Guardar nuevo registro
registros
lbltexto
Insertar un nuevo registro en la tabla clientes base
de datos bdlibrovbnet.mdf
True
formulario
Insertar registro en una tabla de una base de datos.
Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio
de nombres:
Imports System.Data.SqlClient
Public Class Form1
.
:::::::
End Class
Se utiliza el mtodo AddNew del objeto transaccion para crear un nueva fila en
el objeto registros.
f) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo
y escriba el siguiente cdigo:
If Not transaccion.DataSource Is Nothing Then
Adaptador.Update(CType(transaccion.DataSource, DataTable))
cargar_datos("Select * From clientes", tabla)
Else
MsgBox("No se pudo guardar el registro", MsgBoxStyle.Critical)
End If
Si la fila del objeto registros no es vaca por medio del mtodo Update del
objeto adaptador se guarda la nueva fila en la tabla clientes envindole el contenido
del DataSource del objeto transaccion y un objeto DataTable. Por otro lado, se llama
al procedimiento ver_datos para mostrar nuevamente los registros de la tabla clientes.
Si la fila es vaca se muestra el mensaje No se pudo guardar el registro.
Ejecutar el proyecto
Label2
Propiedad
Valor
Text
Filtrar los registros de una tabla por cualquier
campo.
Name
lblfiltrar
Font /Bold True
Text
Seleccione campo
Name
lblcampo
Label3
Text
Name
Label4
Text
Name
Label5
Text
Name
Label6
Text
Name
Font/ Bold
TextBox1
Name
Button1
Name
Text
ComboBox1
Name
ComboBox2
Name
DataGridView1 Name
Form1
Name
Text
Seleccione operador
lbloperador
Criterio de filtrado
lblcriterio
Su seleccin:
lblseleccion
resultado
lblresultado
True
valorcampo
botonfiltrar
Filtrar registros
listacampos
listaoperadores
registrosfiltrados
formulario
Filtrar registros de una tabla.
Escribir cdigo
a) Seleccione el control listacampos, busque la propiedad Items, d clic en los tres
puntos al lado de Coleccin y en ventana Editor de la coleccin Cadena
escriba por cada lnea un campo de la tabla clientes y pulse el botn Aceptar.
Otra forma es dar clic sobre la flecha del control en la parte superior derecha y
seleccionar la opcin Editar elementos. La ventana de edicin deber quedar
como se muestra en la figura:
End Class
Se crean las variables: clave que almacenar el valor que este escrito en el objeto
txtcriterio; nombre_campo de tipo String que almacenar el nombre del campo
seleccionado por medio de la propiedad SelectedItem del objeto listacampos;
valoroperador de tipo String que almacenar el operador seleccionado por medio de la
propiedad SelectedItem del objeto listaoperadores; tambin se crea una variable
seleccion de tipo String que almacenar la instruccin SQL Select. En dicha
instruccin se selecciona todos los campos de la tabla clientes (Select * from clientes)
y se utiliza la clusula Where para mostrar solo aquellos registros cuya
nombre_campo corresponda al criterio de valoroperador concatenado con clave. En
un bloque Try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto
adaptador al cual se le enva como parmetros los objetos seleccion (sentencia SQL) y
conexion (cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla
de datos (tabladedatos) y se le asigna al objeto tabla por intermedio de la propiedad
DataSource el objeto tabladedatos.
Ejecutar el proyecto
Valor
reporte
formulario
Reporte de una tabla.
Disear el informe
Para disear el informe, pulse la flecha del lado superior derecha del objeto reporte
para ver la ventana Tareas de ReportViewer y escoja la opcin Disear nuevo
informe.
Cambie el nombre de la conexin que all aparece por conexion y pulse el botn
Siguiente>, se visualizar la siguiente figura:
Figura 12.55 Ventana de eleccin de objetos de la base de datos.
Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos
y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all
aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la siguiente
figura:
Figura 12.56 Asistente para informes seleccionar el orgen de datos.
Pulse los signos (+) para desplegar la tabla. D clic en Siguiente> para
visualizar la ventana de seleccin de tipo de informe.
Figura 12.57 Asistente para informes seleccionar el tipo de informe.
figura:
Figura 12.59 Diseo de la tabla con los campos seleccionados.
Donde aparece el nombre del informe cmbielo por Informe Clientes y d clic
en Finalizar> para visualizar el diseo final del informe.
Figura 12.63 Diseo final del informe.
En este momento se podrn modificar los textos de las etiquetas de los campos,
como tambin la longitud de los campos. Adems, en el explorador de soluciones se
visualizar el informe agregado al proyecto.
Elija la ficha de diseo del formulario y d clic sobre la flecha del objeto
reporte y seleccione la opcin Elegir informe.
Figura 12.64 Seleccionar opcin Elegir informe.
Ejecutar el proyecto
Propiedad
Text
name
Text
Valor
Seleccione empresa:
etiquetaclientes
Ver Pedidos
name
DataGridView1
ComboBox1
Form1
Name
Name
Name
Text
boton
tablapedidos
lista
formulario
Relacin de tablas con un
ComboBox.
Establecer la conexin
Desde la ficha Datos del cuadro de herramienta arrastre hacia el formulario el adaptador
de datos SqlDataAdapter (Si no aparece el control, d clic derecho sobre la ficha
Datos y ejecute la orden Elegir elementos, busque el control, seleccinelo en el cuadro
de verificacin y pulse el botn Aceptar.). Se visualizar la siguiente figura:
Figura 12.68 Ventana Elegir la conexin de datos.
Aqu puede realizar la seleccin de los datos que debera cargar el adaptador de
datos. Una forma es escribiendo en la ventana instrucciones SQL y la otra es pulsar el
botn Generador de consultas. Para el ejemplo, se pulsar el botn para visualizar la
siguiente figura:
Figura 12.73 Ventana Generador de consultas.
En esta nueva ventana seleccione la opcin * (todas las columnas) o los campos
que desea visualizar (Si desea visualizar la consulta seleccionada pulse el botn
Ejecutar consulta). Se obtendr la siguiente figura:
Figura 12.75 Generador de consultas con los campos seleccionados (tabla clientes).
Escribir cdigo
a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio
de nombres:
Imports System.Data.SqlClient
Public Class formulario
:::::::
End Class
:::::::::
End class
Ejecutar el proyecto
lista por True). Si selecciona un nombre de empresa y se pulsa el botn Ver Pedidos,
se visualizar en la cuadricula todos los registros que estn relacionados con la tabla
pedidos.
Figura 12.80 Relacin de las tablas clientes pedidos con DataGridView.
Select: Especifica la forma y el contenido de los datos que sern devueltos. Por
ejemplo si se desea visualizar solamente el nit y el nombre de la empresa de la
tabla clientes, se debe realizar el siguiente cdigo:
Order By: Ordena una consulta de un orgen de datos por uno o varios campos
especificados. Para ordenarlo de A Z se utiliza Ascending, de Z A
Descendig, cuando no se especifica se usa Ascending predeterminadamente. Si
se desea ordenar la consulta por el nombre de la empresa de la tabla clientes de
A- Z, el cdigo sera el siguiente:
Dim consulta = From misclientes In Clientes
Where misclientes.ciudad=Bogot
Select misclientes Order By misclientes.empresa
Group By: Agrupa los resultados de una consulta por uno o ms campos.
Combina dos colecciones con un campo comn de un orgen de datos. Para
visualizar agrupadas y ordenadas las fecha de entrega de los pedidos de la tabla
Pedidos, el cdigo sera:
Dim consulta = From pedidos In Pedidos Order By Pedidos.fechaentrega
Group By fecha = pedidos.fechaentrega
Into orden = Group
Ejemplo: Realizar una consulta que imprima todos los nombres que empiecen por la
letra R.
-
Orgen de datos
Creacin de la consulta
Ejecutar la consulta
TextBox2
Form1
Propiedad
Name
Text
Name
Text
Name
Text
Name
Text
MultiLine
Name
MultiLine
Name
Text
Valor
botonconsulta
Ejecutar consulta LINQ
lbltexto
Texto original
lblresultado
Resultado de la consulta
lbltexto
Adicione un texto cualquiera.
True
lblresultado
True
formulario
Consulta LINQ con texto
Escribir cdigo
Se utiliza la funcin de agregado Count para contar cada una de los caracteres
que contiene el texto del objeto txttexto se incluyen los espacios. La consulta se crea
con la clusula Aggregate. Al objeto txtresultado se le asigna el valor de contarletras.
Dim palabras() As String
palabras = Split(cadena, " ")
Dim contarpalabras As Integer = Aggregate mispalabras In palabras Into Count()
txtresultado.Text = txtresultado.Text & "Tiene :" & contarpalabras & " Palabras" &
vbCrLf
Se crea una matriz llamada palabras de tipo String. A dicha varible se le asigna
cada una de las palabras que contiene el objeto cadena utilizando la funcin Split. Con
la funcin de agregado Count se cuentan cada una de las palabras de la matriz palabras
y se asigna dicha cantidad a la variable contarpalabras. Al objeto txtresultado se le
adiciona el valor de contarpalabras.
Dim palabras_con_F = From letra In palabras Where letra.Contains("F")
txtresultado.Text = txtresultado.Text & "Las palabras que contienen la letra F son:" &
vbCrLf
For Each letraf In palabras_con_F
txtresultado.Text = txtresultado.Text & letraf & vbCrLf
Next
Ejecutar el proyecto
Label2
Label3
Label4
Label5
Label6
Label7
Label8
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
TextBox7
TextBox8
Form1
Propiedad
Name
Text
Name
Text
Font - Bold
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Name
Name
Name
Name
Name
Name
Name
Name
Text
Valor
botonconsulta
Ejecutar consulta LINQ
lblnumeros
Valores de la Matriz:
True
lblsuma
Suma de los nmeros
lblpromedio
Promedio de los nmeros:
lblmayor
Nmero mayor:
lblmenor
Nmero menor:
lblordenados
Nmeros ordenados:
lblmayores40
Mayores de 40:
lblmayoresmenores
Mayores de 60 o menores de 10:
txtnumeros
txtsuma
txtpromedio
txtmayor
txtmenor
txtordenados
txtmayores40
txtmayoresmenores
formulario
Consulta LINQ con Matrices
Escribir cdigo
Se crea una consulta utilizando la funcin de agregado Sum para sumar los
valores del arreglo numeros y es asignado a la variable suma. Al objeto txtsuma se le
asigna el valor de suma.
Dim promedio As Integer = Aggregate promedionumeros In numeros Into Average()
txtpromedio.Text = promedio
txtmenor.Text = menor
Se crea una variable llamada ordenados, a la cual se le asigna una consulta que
ordena (Order By) todos los valores de menor a mayor (Ascending) del arreglo
numeros. Con un ciclo For Each se imprime los nmeros ordenados en la propiedad
Text del objeto txtordenado.
Dim mayores = From numerosmayores In numeros Where numerosmayores > 40
For Each numero In mayores
txtmayores40.Text = txtmayores40.Text & numero & ", "
Next
Se crea una variable llamada mayores, a la cual se le asigna una consulta que
obtiene todos los valores mayores de 40 del arreglo numeros. Con un ciclo For Each
se imprime los nmeros que cumplen la condicin en la propiedad Text del objeto
txtmayores.
Dim mayoresmenores = From numerosmayoresmenores In numeros
Where numerosmayoresmenores > 60 Or numerosmayoresmenores < 10
For Each numero In mayoresmenores
txtmayoresmenores.Text = txtmayoresmenores.Text & numero & ", "
Next
Ejecutar el proyecto
13.4.3 Consultar una base de datos SQL Server con LINQ To SQL
Disear una aplicacin llamada ConsultaLinqToSQL, que permita visualizar todos los
registros de una tabla perteneciente a una base de datos SQL Server. Dichos datos se
deben mostrar en una cuadricula. Se debe utilizar el componente LINQ to SQL.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).
llamada
Propie
dad
Name
Text
Name
Name
Text
Valor
boton
Ejecutar consulta LINQ to SQL
cuadricula
formulario
Consulta LINQ to SQL.
Para agregar un objeto Clases LINQ to SQL puede realizar alguno de los siguientes
pasos:
1. Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
2. Del icono
seleccionar Agregar nuevo elemento y busque la plantilla
Clases LINQ to SQL.
3. En el Explorador de soluciones situarse en el nombre del proyecto, dar clic
derecho, seleccionar la opcin Agregar nuevo elemento y busque la
plantilla Clases LINQ to SQL.
Con cualquiera de las tres opciones se visualizar la siguiente figura:
se visualizar
Escribir cdigo
Seleccione el objeto boton, d doble clic para abrir el editor de cdigo y escriba el
siguiente cdigo:
Dim vista As New MiLinqToSQLDataContext
Dim consulta = From misclientes In vista.clientes Select misclientes
cuadricula.DataSource = consulta
Ejecutar el proyecto
13.4.4 Operaciones con una tabla de una base de datos SQL Server
Realizar una aplicacin llamada OperacionesLinqToSQL, que permita a un usuario
seleccionar el nombre de una empresa y visualizar todo el registro en campos de texto.
Adems, el usuario podr realizar las siguientes operaciones: modificar el registro,
eliminar el registro, crear y guardar un nuevo registro.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).
llamada
Propiedad
Name
Text
Name
Text
Valor
botonbuscar
Mostrar registro
botonmodificar
Modificar registro
Button3
Button4
Button5
Label1
Label2
Label3
Label4
Label5
Label6
Label7
Label8
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox6
ComboBox1
DataGridView1
Panel1
Form1
Name
Text
Name
Text
Name
Text
Name
Text
Font - Bold
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Name
Text
Font - Bold
Name
Enabled
Name
Name
Name
Name
Name
Name
Name
Name
Borderstyle
Name
Text
botoneliminar
Eliminar registro
botonnuevo
Nuevo registro
botonguardar
Guardar nuevo registro
lblcliente
Seleccione cliente:
True
lblnit
Nit:
lblempresa
Empresa:
lblrepresentante
Representante:
lblciudad
Ciudad:
lbldireccion
Direccin:
lbltelefono
Telfono:
lblregistros
Registros actuales de la tabla
True
txtnit
False
txtempresa
txtrepresentante
txtciudad
txtdireccion
txttelefono
listaclientes
cuadricula
panel
FixedSingle
formulario
Operacin con una base de datos LINQ to SQL
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL, se visualizar la siguiente figura:
Figura 13.16 Agregar plantilla Clases de LINQ to SQL.
Al pulsar en el signo (+) al lado del texto Tablas se visualizarn las diferentes
tablas de la base de datos, d clic sobre la tabla clientes, adems cambie el Nombre de
DataSet por conjuntodedatos y pulse el botn Finalizar para volver a modo diseo:
Figura 13.23 Ventana para elegir los objetos de base de datos.
Figura 13.24 Control listaclientes con los campos empresa y nit seleccionados.
Escribir cdigo
a) Despes de la apertura de la clase Public class formulario y antes del primer
procedimiento Sub, d doble clic sobre el formulario y busque clase formulario
y escriba este cdigo escriba:
Public Class formulario
Dim vista As New MisDatosDataContext
Se crea un procedimiento llamado datos que contiene una consulta de los datos
actuales de la tabla clientes, estos son asignados a la propiedad DataSource del objeto
DataGridView cuadricula.
c) Seleccione el objeto botonbuscar, d doble clic para abrir el editor de cdigo y
escriba el siguiente cdigo:
.telefono = txttelefono.Text}
vista.clientes.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
txtnit.Enabled = False
Catch ex As Exception
MsgBox("Error en el sistema")
End Try
Else
MsgBox("Registro no guardado", MsgBoxStyle.Information)
End If
datos()
Ejecutar el proyecto
13.4.5 Relacin entre dos tablas de una base de datos SQL Server
Disear una aplicacin llamada RelacionTablasLINQ, que permita a un usuario
seleccionar el nombre de una empresa y visualizar todos los pedidos que dicha empresa
ha realizado.
NOTA: para este ejemplo se utilizar la base de datos SQL Server
bdlibrovbnet (Ver anexo A, SQL Server).
llamada
Label1
Label2
ComboBox1
DataGridView1
Form1
Propiedad
Name
Text
Text
Name
Text
Font - Bold
Name
Text
Font - Bold
Name
Name
Name
Text
Valor
boton
Obtener Pedidos
Guardar nuevo registro
lblclientes
Seleccione Cliente:
True
lblpedidos
Pedidos del cliente seleccionado
True
listaclientes
cuadricula
formulario
Relacin tablas LINQ to SQL
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosRelacionados.dbml, luego pulse el botn Agregar para visualizar un nuevo
objeto de datos relacionales LINQ to SQL.
En la lista del explorador de soluciones aparece un nuevo archivo con el nombre
asignado. Se obtendr la siguiente figura:
Figura 13.27 Vista del diseador relacional de objetos DatosRelacionados.dbml.
Escribir cdigo
Seleccione el objeto botonbuscar, d doble clic para abrir el editor de cdigo y escriba
el siguiente cdigo:
Se
crea
una
instancia
llamada
vista
de
la
clase
DatosRelacionadosDataContext. El nombre de DataContext corresponde al nombre
del archivo .dbml. El archivo LINQ to SQL es DatosRelacionados. Tambin se crea
una variable de tipo String llamada empresaseleccionada a la cual se le asigna el valor
del campo nit seleccionado del objeto listaclientes (este valor se toma de la opcion
miembro de valor que es el item cero (0)). Por otro lado, se crea una consulta
combinada con la clausula Join que realiza la relacion de las tablas clientes, pedidos
por el campo comn nit (Equals), con la condicion (Where) de que el nit sea igual al
registro seleccionado, adems se seleccionan (Select) los campos de las dos tablas que
se quieren mostrar. Por ltimo se asigna a la propiedad DataSource del objeto
cuadricula el resultado de la consulta (consultajoin).
Ejecutar el proyecto
llamada
Del men Proyecto seleccione Agregar nuevo elemento y busque la plantilla Clases
LINQ to SQL. En el cuadro de texto Nombre cambie el nombre por
DatosDataGridView.dbml.
Figura 13.34 Plantilla Clases de LINQ to SQL.
4. Seleccione el icono Objeto y pulse el botn Siguiente para ver la ventana de eleccin
del objeto a enlazar.
Escribir cdigo
a) D doble clic sobre el formulario y despus de la creacin de la clase Form1
escriba el siguiente cdigo:
Public Class Form1
Dim vistadatos As New DatosDataGridViewDataContext
::::::::
::::::::
End Class
Se
crea
una
instancia
llamada
vistadatos
de
la
clase
DatosDaTaGridViewDataContext. El nombre de DataContext corresponde al
nombre del archivo .dbml. El archivo LINQ to SQL es DatosDataGridView.
b) En el procedimiento Form1_Load del formulario escriba el siguiente cdigo:
ClientesBindingSource.DataSource = vistadatos.clientes
Ejecutar el proyecto
Propie
dad
Name
Name
Name
Name
Text
Valor
datosclientes
datospedidos
tablasrelacionadas
formulario
Consulta LINQ to DataSet.
llamada
Escribir cdigo
Seleccione el objeto formulario, d doble clic para abrir el editor del procedimiento
Formulario_Load y escriba el siguiente cdigo:
Dim conexion As String = "Data Source=(local)\SQLEXPRESS; Database=bdlibrovbnet;
Integrated Security=True"
Se crea una variable llamada conexion de tipo String que contendr la cadena
de conexin a la base de datos de SQL Server. La cadena de conexin contiene el orgen
de datos (Data Source), el nombre de la base de datos SQL Server (DataBase) y la
seguridad integrada (True
Dim cargarclientes As New SqlClient.SqlDataAdapter("SELECT * FROM clientes",
conexion)
Dim comandoclientes As New SqlClient.SqlCommandBuilder(cargarclientes)
Dim conjuntodedatos As New DataSet()
cargarclientes.Fill(conjuntodedatos, "clientes")
Dim cargarpedidos As New SqlClient.SqlDataAdapter("SELECT * FROM
pedidos",conexion)
Dim comandopedidos As New SqlClient.SqlCommandBuilder(cargarpedidos)
cargarpedidos.Fill(conjuntodedatos, "pedidos")
Se crea una consulta combinada con la clausula Join que realiza la relacion de las
tablas clientes, pedidos por el campo comn nit (Equals), con la condicion (where) de
que el nit sea igual a 100, adems, se seleccionan (Select New With) los campos de las
dos tablas que se quieren mostrar. Por ltimo se asigna a la propiedad DataSource del
objeto tablasrelacionadas el resultado de la consulta (consultalinqdataset). Se utiliza
la funcin AsEnumerable para obtener una coleccin de todas las filas de los datos,
como tambin la funcin Field para el especificar el tipo de dato de las columnas de
cada fila.
Ejecutar el proyecto
Al escoger una de las dos opciones se visualizar la ventana Nuevo sitio Web,
donde se deber seleccionar la plantilla SitioWeb ASP.NET.
Label2
Label3
Label4
Label5
Label6
Label7
TextBox1
TextBox2
TextBox3
ListBox1
Propiedad
ID
Text
Font - Bold
ID
Text
ID
Text
ID
Text
Font - Bold
ID
Text
ID
Text
ID
Text
ID
ID
ID
ID
Valor
lbltitulo
Pedidos Restaurante la FRIKY.
True
lblcomida
Seleccione Comida:
lblbebida
Seleccione Bebida:
lblpedido
Pedido
True
lblsubtotal
SubTotal:
lbliva
I.V.A.:
lbltotal
Neto a Pagar:
txtsubtotal
txtiva
txtsubtotal
listacomida
DropDownList1
Button1
Button2
GridView1
Form1
Document
Default.aspx
AutoPostBack
ID
AutoPostBack
ID
Text
ID
Text
ID
ID
Title
Nombre del archivo
True
listabebida
True
botoncomida
Adicionar Comida
botonbebida
Adicionar Bebida
tablapedido
formulario
Restaurante la FRIKY
pagina.aspx
seleccinelo y d clic en la flecha de la parte superior derecha del control para ver las
Tareas de GridView y escoja la opcin formato automtico para ver la ventana
Autoformato y elija el formato que desee. Para el ejemplo, se escogi el formato
Multicolor.
14.1.4 Escribir cdigo
Una vez se hayan establecido las propiedades del formulario Web y sus objetos, se
puede agregar el cdigo que se ejecutar en respuesta a un evento especifico de cada
control.
1. Despes de la apertura de Partial class _Default y antes del primer
procedimiento Sub, declare como publicas las variables llamadas valor, i,
sumar de tipo Integer. D doble clic sobre el formulario y escriba este cdigo
escriba:
Partial Class _Default
Inherits System.Web.UI.Page
Dim datos As New Data.DataTable
Public Shared valor, sumas As Integer
If listacomida.SelectedIndex = 3 Then
valor = 12000
End If
Al seleccionar como comida Arroz con Pollo y Ajiaco y como bebida Vino y
Cerveza, se visualiza la siguiente figura:
Figura 14.11 Sitio Web con comida y bebida seleccionados.
En cada caso se deben guardar los nuevos cambios que se hayan realizado.
Para volver a abrir la aplicacin PedidoWeb o cualquier otra aplicacin
existente se debern realizar los siguientes pasos:
1. Abrir Visual Studio .NET.
2. Si en la pantalla inicial de Visual Studio .NET se visualiza el nombre del sitio Web que
se desea abrir haga doble clic para abrir la aplicacin. Si por el contrario no se visualiza
la aplicacin en el men Archivo, seleccione Abrir sitio Web..., busque la carpeta
PedidoWeb y pulse el botn Abrir para abrir la aplicacin Web en el entorno de
desarrollo de Visual Basic .NET.
Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Valor
lblfrutas
Seleccin de Frutas
True
lblfrutaseleccionadas
Frutas Seleccionadas
True
listafrutas
AutoPostBack
True
ID
listafrutasseleccionadas
AutoPostBack
True
Form1
ID
formulario
Document
Title
Control CheckBoxList
Default.aspx
Nombre
archivo
Label2
CheckBoxList1
ListBox1
del
pagina.aspx
Escribir cdigo
D doble clic en el objeto CheckBoxList llamado listafrutas, para abrir el editor del
Ejecutar la aplicacin
elementos: El primero es una imagen como un archivo .gif, .jpg, .png, .bmp, etc.; El
segundo es una coleccin de zonas activas, donde cada zona puede ser definida como un
crculo, un rectngulo o un polgono y unas coordenadas que especifican la ubicacin y
el tamao de la zona activa. Cada zona activa puede ser un hipervnculo o un evento que
devuelve informacin.
14.2.2.1 Ejemplo prctico control ImageMap
Crear un sitio Web llamado ControlImageMap que permita a un usuario seleccionar
una zona de una imagen entre cuatro zonas activas e imprimir el nombre del objeto
seleccionado. Se debe tener una imagen donde se puedan diferenciar las zonas activas.
Label2
ImageMap1
Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Valor
lbltexto
Imagen con cuatro dibujos
True
lblseleccion
Seleccin:
True
mapa_imagen
Height
200
Width
200
Form1
ID
formulario
Document
Title
Control ImageMap
Realice la misma operacin para agregar tres nuevas zonas activas a la imagen,
con los siguientes valores en la respectiva propiedad.
Bottom
100
200
200
Left
100
0
100
Right
200
100
200
Propiedades
Top
HotSpotMode
0
PostBack
100
PostBack
100
PostBack
PostBackValue
imagen_robot
imagen_celular
imagen_bicicleta
Escribir cdigo
D doble clic en el objeto ImageMap llamado mapa_imagen, para abrir el editor del
procedimiento mapa_imagen_Click y escriba el siguiente cdigo:
Dim region As String = ""
Select Case e.PostBackValue
Case "imagen_portatil"
region = "El PORTATIL"
Case "imagen_robot"
region = "El ROBOT"
Case "imagen_celular"
region = "El CELULAR"
Case "imagen_bicicleta"
region = "La BICICLETA"
End Select
lblseleccion.Text = "selecciono:" & region
Ejecutar la aplicacin
las propiedades: Text y Value. Text detalla lo que el control va a mostrar en la pgina.
Value devuelve un valor deseado al seleccionar un elemento. Este control responde al
evento clic para devolver datos del servidor.
14.2.3.1 Ejemplo prctico control BulletedList
Disear un sitio Web llamado ControlBulletedList que permita a un usuario
seleccionar de una lista una pgina de Internet y abrirla utilizando el control
BulletedList.
Form1
Propiedad
ID
Text
Font - Bold
ID
DisplayMode
BulletStyle
ID
Valor
lbltexto
Control Bulletedlist lista de pginas de Internet
True
listapaginas
HyperLink
UpperAlpha
formulario
Document
Title
Control BulletedList
BulletedList1
Propiedades
Value
http://www.microsoft.com
http://www.google.com
http://www.java.sun
Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:
Figura 14.22 Interfaz de usuario final aplicacin ControlBullettedList.
Ejecutar la aplicacin
RadioButton
HyperLink1
Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
AutoPostBack
ID
Valor
lbltexto
Control RadioButtonList lista de pginas de Internet
True
lblhipertexto
Ir a la pgina :
True
listapaginas
True
hipertexto
Form1
ID
formulario
Document
Title
Control RadioButtonList
Label2
Propiedades
Value
http://www.microsoft.com
http://www.google.com
http://www.java.sun
Por ltimo pulse el botn Aceptar. La interfaz de usuario con las modificaciones
respectivas en las propiedades de cada control queda como se muestra en la siguiente
figura:
Escribir cdigo
Con un ciclo For se leen cada uno de los elementos del objeto listapaginas y al
encontrar el elemento que est seleccionado se asigna a la propiedad Text del objeto
hipertexto el texto de la propiedad Value del objeto listapaginas, como tambin se le
adiciona dicho valor a la propiedad NavigateUrl.
Ejecutar la aplicacin
Form1
Propiedad
ID
Text
Font - Bold
ID
ActiveViewIndex
ID
Valor
lbltexto
Controles MultiView y View.
True
multiplesvistas
0
formulario
Document
Title
MultiView1
b) Agregue cuatro (4) controles View y establezca las siguientes propiedades a los
controles:
Propiedad
ID
ID
ID
ID
Valor
primeravista
segundavista
terceravista
cuartavista
CheckBoxList1
Button1
Propiedad
ID
Text
Font - Bold
ID
ID
Text
Valor
lbldeportes
Seleccionen los deportes que te gustan:
True
listadeportes
botonsiguiente
Siguiente
RadioButtonList1
Button1
Button2
Propiedad
ID
Text
Font - Bold
ID
ID
Text
Valor
lblpractica
Los prcticas por:
True
listapractica
botonsiguiente2
Siguiente
ID
botonanterior
Text
Anterior
RadioButtonList1
Button1
Button2
Propiedad
ID
Text
Font - Bold
ID
ID
Text
Valor
lblsemana
Cuantas veces por semana:
True
listasemana
botonterminar
Terminar
ID
botonanterior2
Text
Anterior
Label2
Propiedad
ID
Text
Font - Bold
ID
Text
Valor
lblrespuesta
El resultado de la encuesta fue:
True
listasemana
Respuesta
Escribir cdigo
a) D doble clic en el objeto Button llamado botonsiguiente del objeto
primeravista, para abrir el editor del procedimiento botonsiguiente_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = "Los deportes que prcticas son:<br>"
For i = 0 To listadeportes.Items.Count - 1
If listadeportes.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listadeportes.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 1
Con un ciclo For se leen cada uno de los elementos del objeto listadeportes y
aquel elemento que este seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la segunda vista.
b) D doble clic en el objeto Button llamado botonsiguiente2 del objeto
segundavista, para abrir el editor del procedimiento botonsiguiente2_Click y
escriba el siguiente cdigo:
Dim i As Integer
lblresultado.Text = lblresultado.Text & "<br><br>Lo prcticas por:<br>"
For i = 0 To listapractica.Items.Count - 1
If listapractica.Items.Item(i).Selected Then
lblresultado.Text = lblresultado.Text & "<br>" & listapractica.Items.Item(i).Value
End If
Next
multiplesvistas.ActiveViewIndex = 2
Con un ciclo For se leen cada uno de los elementos del objeto listapractica y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la tercera vista.
c) D doble clic en el objeto Button llamado botonanterior del objeto
segundavista, para abrir el editor del procedimiento botonanterior_Click y
escriba el siguiente cdigo:
If (multiplesvistas.ActiveViewIndex > 0) And (multiplesvistas.ActiveViewIndex <= 2) Then
multiplesvistas.ActiveViewIndex -= 1
ElseIf multiplesvistas.ActiveViewIndex = 3 Then
multiplesvistas.ActiveViewIndex = 0
Else
Throw New Exception("A ocurrido un error.")
End If
Con un ciclo For se leen cada uno de los elementos del objeto listasemana y
aquel elemento que est seleccionado se adiciona al objeto lblresultado. Con la
propiedad ActiveViewIndex se activa la cuartavista.
e) D doble clic en el objeto Button llamado botonanterior2 del objeto
terceravista, para abrir el editor del procedimiento botonanterior2_Click y
escriba el siguiente cdigo:
If (multiplesvistas.ActiveViewIndex > 0) And multiplesvistas.ActiveViewIndex <= 3 Then
multiplesvistas.ActiveViewIndex -= 1
ElseIf multiplesvistas.ActiveViewIndex = 3 Then
multiplesvistas.ActiveViewIndex = 1
Else
Throw New Exception("A ocurrido un error.")
End If
Ejecutar la aplicacin
Label2
Label3
Label4
Label5
Label6
Label7
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
RequiredFieldValidator1
RangeValidator1
CustomValidator1
RegularExpressionValidator1
CompareValidator1
ValidationSummary
Form1
Document
Button1
Propiedad
ID
Text
Font
ID
Text
ID
Text
ID
Text
ID
Text
ID
Text
ID
Text
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
ID
Title
ID
Text
Valor
txttexto
Encuesta Personal
Bold
lbldatos
Digite Nombres y Apellidos:
lblingles
Lee ingles (1 10);
lblestado
Estado
civil
(S=soltero;
C=casado; U=unin libre; V=
viudo)
lbcontrasea
Digite la contrasea 123456
lblcorreo
Correo electrnico :
lblerrores
Resumen de errores:
txtdatos
txtingles
txtestado
txtcontrasea
txtcorreo
validarcampo
validarrango
validarestado
validarexpresion
validarcontrasea
validarerrores
formulario
Controles de validacin
botonenviar
Enviar
Escribir cdigo
a) D doble clic sobre la pgina Web, para abrir el editor del procedimiento
Page_load y escriba el siguiente cdigo:
If Not Page.IsPostBack Then
validarcampo.ControlToValidate = "txtdatos"
validarcampo.ErrorMessage = "Campo obligatorio, no puede ser vacio"
validarrango.ControlToValidate = "txtingles"
validarrango.Type = ValidationDataType.Integer
validarrango.MinimumValue = 1
validarrango.MaximumValue = 10
validarrango.ErrorMessage = "Debe digitar un valor entre 1 y 10"
validarestado.ControlToValidate = "txtestado"
validarestado.ErrorMessage = "Digite S,C,u o V"
validarexpresion.ControlToValidate = "txtcorreo"
validarexpresion.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
validarexpresion.ErrorMessage = "El formato del correo es:nombre@sitioweb.dominio"
validarcontrasea.ControlToValidate = "txtcontrasea"
validarcontrasea.ValueToCompare = "123456"
validarcontrasea.ErrorMessage = "La contrasea es:123456"
End If
Ejecutar la aplicacin
Como se puede apreciar, se muestran los mensajes de error en cada campo validado por
el respectivo control de validacin. Si por el contrario se escriben los siguientes valores:
Cristian Vanegas, 8, S, 123456, cavm10@hot.com y se puls el botn Enviar, se
obtendra la pgina sin mensajes de error.
descripcin
OleDbDataAdapter
SqlDbDataAdapter
OracleDbDataAdapter
DataSet
DataView
SqlDataSource
AccesDataSource
XmlDataSource
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet y dentro de
ella una tabla llamada clientes (Ver anexo A, SQL Server).
Label2
Label3
Button1
Form1
Document
Propiedad
ID
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
ID
Title
Valor
cuadriculadatos
lbltexto
Conexin por cdigo a una base de datos SQL
SERVER.
True
lblregistros
Registros tabla: Clientes
True
lblnumeroregistros
Nmero de Registros:
True
boton
Ejecutar Conexin
formulario
Conexin a SQL Server.
Escribir cdigo
a) Antes de la apertura de la clase Default se debe importar los siguientes espacios
de nombres:
Imports System.Data
Imports System.Data.SqlClient
Partial Class Default
Inherits System.Web.UI.Page
.
End Class
tabladedatos se le asigna espacio de memoria de tipo DataTable para guardar los datos
en memoria y poder realizar operaciones con dichos datos. En un bloque Try se le
asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptadordedatos, al
cual se le enva como parmetros los objetos seleccion (datos a mostrar) y conexion
(cadena de conexin), luego se rellena (fill) el adaptador de datos con la tabla de datos
(tabladedatos); al objeto cuadriculadatos en su propiedad DataSource se le establece
el conjunto de datos que se van a mostrar al asignrsele la tabla de datos, por otro lado,
se enlaza al objeto cuadriculadatos el orgen de datos (DataBind()) y por ltimo se
establece a la propiedad Text del objeto lblnumeroregistros el texto actual del objeto
unido al nmero total de registros que contenga la tabla (tabladedatos.Rows.Count).
Por el bloque Catch se establece un mensaje en caso de que ocurra un error de
conexin.
Ejecutar la aplicacin
Form1
Document
Propiedad
ID
ID
Text
Font - Bold
ID
Title
Valor
datos
lbltexto
Consulta de los registros de una tabla con un
control GridView.
True
formulario
Consulta de registro de una tabla.
Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos orgendedatos y pulse el botn Aceptar, para visualizar la ventana de
eleccin de la conexin de datos.
Figura 15.6 Ventana Elegir la conexin de datos.
Pulse el botn Nueva conexin para ver la ventana de Agregar conexin, all
d clic sobre el botn Examinar y busque la base de datos bdlibrovbnet.mdf. Se
obtendr la siguiente figura:
Ejecutar la aplicacin
Al ejecutarse el sitio Web, se visualizar la siguiente figura:
NOTA: para este ejemplo el usuario tiene que tener instalado Microsoft SQL
SERVER 2005 o posterior y tener creada la base de datos llamada bdlibrovbnet con
sus respectivas tablas. (Ver anexo A, SQL Server).
Form1
Document
Propiedad
ID
ID
Text
Font - Bold
ID
Title
Valor
formulariodatos
lbltexto
Consulta una tabla utilizando el Explorador de
servidores.
True
formulario
Consulta tabla con FormView.
Explorador de servidores
|Escoja el objeto Base de datos y especifique como nombre del identificador del
orgen de datos conexiondedatos y pulse el botn Aceptar para visualizar la ventana de
Elegir la conexin de datos. De la lista que all aparece escoja la base de datos
bdlibrovbnet.mdf. La ventana quedara de la siguiente forma:
Ejecutar la aplicacin
DetailsView1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
ID
Title
Valor
lbltexto
Insertar registro en una tabla desde un
formulario Web.
True
vistadatos
formulario
Insertar un registro en una tabla.
Establecer la conexin
Por otro lado, pulse el botn Avanzadas para ver la ventana de opciones de
generacin de consultas SQL avanzadas. Active las opciones Generar instrucciones
Insert, Update y Delete y Usar concurrencia optimista. Se obtendr la siguiente
figura:
Ejecutar la aplicacin
Al pulsarse el link Nuevo los campos de texto del objeto vistadatos quedaran en
blanco y se observaran dos nuevos link Insertar y Cancelar, como se aprecia en la
figura.
Registro insertado
DetailsView1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
ID
Title
Valor
lbltexto
Modificar registros de una tabla en un
formulario Web.
True
vistadatos
formulario
Modificar registros en una tabla.
Establecer la conexin
Ejecutar la aplicacin
Con los link numricos busque el registro que se inserto en el ejemplo anterior y
pulse el botn Editar. Se observaran dos nuevos botones Actualizar y Cancelar.
Modifique el contenido del campo empresa por el texto Las acacias.
Figura 15.44 Formulario Web listo para modificar un registro en la tabla.
DetailsView1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
ID
Title
Valor
lbltexto
Eliminar registros de una tabla desde un
formulario Web.
True
vistadatos
formulario
Eliminar registros en una tabla.
Establecer la conexin
Ejecutar la aplicacin
ListView1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
ID
Title
Valor
lbltexto
Filtrar los registros de una tabla con
formularios Web.
True
vista
formulario
Filtrar registros de una tabla.
Establecer la conexin
Por otro lado, pulse el botn WHERE para ver la ventana Agregar clusula
WHERE. Realice lo siguiente: de la lista Columna escoja el campo nit; de la lista
Operador seleccione el operador >=; de la lista Orgen el texto None; y en las
propiedades del parmetro el valor 500. Se obtendr la siguiente figura:
Ejecutar la aplicacin
Propiedad
ID
ID
Title
Valor
informeregistros
formulario
Informe de los registros de una
tabla.
Para seleccionar la tabla y disear el informe, pulse la flecha del lado superior derecha
del objeto informeregistros para ver la ventana Tareas de ReportViewer y escoga la
opcin Disear nuevo informe.
Al ejecutarse el sitio Web, se visualizar la pgina con el informe de los registros que
contiene la tabla clientes. Puede ajustar el tamao del reporte en la pgina en modo de
diseo.
Figura 15.80 Pgina Web con el informe de los registros de la tabla clientes.
Label2
Label3
DropDownList1
GridView1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
AutoPostBack
ID
ID
Title
Valor
lbltexto
Relacin de dos tablas desde un Sitio Web
True
lblempresas
Seleccione el nombre de la empresa:
True
txtpedidos
Registros relacionados.
True
listaempresas
True
datospedidos
formulario
Relacin de dos tablas.
Establecer la conexin
Pulse el botn Aceptar para volver a modo diseo. Ahora seleccione el objeto
datospedidos y pulse en la flecha de la parte superior derecha para ver las Tareas de
GridView. Escoja la opcin Elegir origen de datos y seleccione <Nuevo origen de
datos>. Se visualizar la ventana Elija un tipo de origen de datos, all seleccione el
objeto Base de datos y cambie el identificador para el origen de datos por
conexionpedidos.
Figura 15.88 Ventana Elija un tipo de origen de datos (objeto datospedidos).
400
Desde la pgina de inicio de Microsoft Visual Studio cree un nuevo proyecto, puede
seguir los siguientes pasos:
1. En la ventana proyectos recientes seleccionar la opcin Crear: link Sitio Web.
2. Hacer clic en la opcin Archivo del men y seleccionar Nuevo sitio Web
D clic en el icono
(Crear nueva aplicacin Web) que se encuentra en la
parte superior derecha de la ventana. En el nuevo objeto que aparece reemplace en texto
WebSite por ServicioWebNumerosPrimos. Se obtendr una figura similar a la
siguiente:
Figura 16.4 Creacin de una nueva aplicacin Web.
Figura 16.5 Nuevo sitio web con la ubicacin del servicio Web.
El cdigo ser la interfaz del servicio Web a los que un usuario tendr acceso desde una
aplicacin Web. Entre Class y End Class se deben declarar cada uno de los
procedimientos que utilizar el servicio Web para realizar una tarea especfica. Los
procedimientos de un servicio Web se estructuran de la siguiente manera:
<WebMethod ()>: Entre los parntesis se puede hacer un comentario del servicio Web,
<WebMethod (Description:=Servicio Web para consultar una base de datos)>
Label2
Label3
TextBox1
TextBox2
Button1
Form1
Document
Propiedad
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
Text
Font - Bold
ID
ID
ID
AutoPostBack
ID
Title
Valor
lbltexto
Formulario Web para determinar si un
nmero es primo o no con un servicio
Web.
True
lblnumero
Digite un nmero:
True
lblresultado
Resultado:
True
txtnumero
txtresultado
boton
Evaluar nmero
formulario
Pgina Web que consume un servicio
Web.
Para agregar el servicio Web a la aplicacin Web seleccione el men Sitio Web y
escoja la opcin Agregar referencia Web, se obtendr la siguiente ventana:
D clic sobre el link Servicios web del equipo local, se visualizar una ventana
similar a la siguiente figura (depende de los servicios que tenga el equipo local):
Figura 16.13 Ventana para seleccionar un servicio Web del equipo local.
En este caso pulse el segundo link Service, el cual tiene una URL
http://localhost:8081/ServicioWebNumerosPrimos/Serv... Se obtendr la siguiente
figura:
En esta ventana se muestran todas las funciones que tiene el servicio Web
ServicioWebNumerosPrimos. En el campo Nombre de referencia Web aparece por
omisin el texto localhost (cmbielo si desea), pulse el botn Agregar referencia para
volver a la pgina Web. En el Explorador de soluciones se podr visualizar el servicio
Web integrado al proyecto
Figura 16.15 Servicio Web integrado al sitio Web.
Escribir cdigo
D doble clic sobre el objeto boton para abrir el editor de cdigo del procedimiento
boton_Click y escriba el siguiente cdigo:
NDICE
Abs, 69
Abstraccin, 198
Acceder a un Servicio Web, 413
AccesDataSource, 355
ActiveMdiChild, 150
AdapterManager, 246
ADO.NET, 230
Aggregate, 279
ALL, 225
ALTER, 224
And, 33
AND, 225
AndAlso, 33
Aplicacin para Windows Forms, 15
Aplicacin Web ASP.NET, 15
Arco, 163
Asc, 73
AsEnumerable, 314
ASP.NET, 316
ASP.NET AJAX, 13
Average, 279
AVG, 225
BETWEEN, 225
BigMul, 69
BindingSource, 246
BulletedList, 335
catch, 117
CBool, 31
CByte, 31
CChar, 31
CDate, 31
CDbl, 31
CDec, 31
Ceiling, 69
Chars, 72
CheckBox, 99
CheckedListBox, 146
Chr, 73
CInt, 31
Circulo, 163
Clase, 11
Clases, 198
Class, 199
Clear, 140
CLng, 31
Colecciones, 84
columnas, 223
ComboBox, 93
Command, 231
CompareValidator, 350
Concat, 72
Conectarse a SQL Server, 422
Connection, 231
Constantes, 26
Constructores, 199
ControlValidate, 352
Copy, 139
cos, 69
Count, 279
COUNT, 225
Creacin de Mens, 130
Creacin de una barra de herramientas,
156, 159
CREATE, 224
CREATE DATABASE, 226
CShort, 31
Cuadro de Herramientas, 16, 319
Curva, 163
CustomValidator, 350
Cut, 139
Data Source, 233, 357
DataAdapter, 231
Database, 233, 357
DataGridView, 105
DataMember, 241
DataSet, 230, 355
DataSource, 241, 276
DataTable, 231
DataView, 231, 355
Date, 66
DateTimePicker, 144
Default.aspx, 319
DefaultView, 276
DELETE, 224
Diseador formulario Windows, 16
Diseador formularios Web, 319
DLL, 223
DML, 223
DoLoop While, 51
DrawArc, 163
DrawCurve, 163
DrawEllipse, 163
DrawLine, 163
DrawPie, 163
DrawPolygon, 163
DrawRectangle, 163, 169
DROP, 224
Editor de cdigo, 21
El explorador de soluciones, 17, 319
Elegir base de datos, 235
Elegir proveedor base de datos, 235
Elipse, 163
Encapsulacin, 198
ErrorMessage, 352
Espacio de nombres, 11
Estructuras de Control, 37
filas, 223
fill, 233, 357
FillEllipse, 163
FillPie, 163
FillPolygon, 163
FillRectangle, 163
Floor, 69
FolderBrowseDialog, 122
Font - Bold, 355, 356
For, 45, 55
From, 278
FROM, 224
FromArgb, 104
Funciones de cadenas de caracteres, 72
Funciones Matemticas, 69
Function, 61
GetItemChecked, 148
GraphicsPath, 169
GROUP, 224
Group By, 279
HAVING, 224
Height, 175
Herencia, 198, 201
HotSpotMode, 332
If (operador)., 39
IIF., 39
ImageMap, 331
IN, 225
IndexOf, 73
InitialDirectory, 137
Insert, 73
INSERT, 224
Integrated, 10
Integrated Security, 233, 357
Join, 279
KeyCode, 194
KeyDown, 193
KeyPress, 193
KeyUp, 193
Left, 172
Len, 73
Length, 72
Lenguaje de Consulta Estructurado, 223,
225, 229
LIKE, 225
LinkLabel., 91
LINQ, 278
LINQ to DataSet, 278
LINQ to Objects, 278
LINQ to SQL, 278
LINQ to XML, 278
ListBox, 93
ListView, 107
Matrices, 78
Max, 69, 279
MAX, 226
MaximumValue, 352
MDI, 130
Mensaje, 198
Men principal, 15, 319
men Ventana, 153
Mens, 130
Mtodo, 198
Mid, 73
min, 69
Min, 280
MIN, 226
MinimumValue, 352
Modificar la cadena de conexin:, 235
Mdulos, 59
MonthCalendar, 145
MouseClick, 188
MouseDoubleClick, 188
MouseDown, 188
MouseEnter, 188
MouseHover, 188
MouseLeave, 188
MouseMove, 188
MouseUp, 188
MouseWheel, 188
movenext, 127, 128
MultiView, 342
NamesSpace, 410
Not, 33
NOT, 225
Objetos, 198
OleDataAdapter, 231
OleDbCommand, 231
OleDbConnection, 231
OleDbDataAdapter, 355
Operadores de comparacin, 225
Operadores Lgicos, 33
Operadores lgicos S.Q.L, 224
Operadores Relacionales, 32
Or, 33
OR, 225
OracleCommand, 231
OracleConnection, 231
OracleDataAdapter, 231
OracleDbDataAdapter, 355
ORDER, 224
Order By, 279
OrElse, 33
Orientada a objetos, 223
origen de datos, 354
Palabras clave, 36
Paste, 139
Pie, 163
Point, 163
Poligono, 163
Polimorfismo, 198
PostBack, 332
PostBackValue, 332
pow, 69
private, 199
Probar la conexin, 235
Procedimientos, 61
Programacin Orientada a Objetos, 198
Propiedad, 198
protected, 199
public, 199
Punto, 163
RadioButton, 99
RadioButtonList, 338
RangeValidator, 350
ReadtoEnd, 138
Recta, 163
Rectangle, 163
Rectangulo, 163
Redo, 139
RegularExpressionValidator, 350
Remove, 73
Replace, 73
RequiredFieldValidator, 350
RichTextBox, 115
round, 69
RowFilter, 276
SDI, 130
Select, 278
SELECT, 224, 227
Select case (Seleccionar caso), 42
SelectedItem, 255, 256
SelectedValue, 276
SelectionBullet, 141
Sentencia If (Si), 37
Sentencia If- Else (Si - Sino), 38
Sentencias bsicas S.Q.L, 226
servicio web, 407
sin, 69
SOAP, 407
Sobrecarga, 200
Split, 73
SqlCommand, 231
SqlConnection, 231
SqlDataAdapter, 231
SqlDataSource, 355
SqlDbDataAdapter, 355
sqrt, 69
Str, 31
StreamWriter, 137
String.Copy, 73
StrReverse, 73
Sub, 61
SubString, 73
Sum, 280
SUM, 225
System.Data.SqlClient, 232, 356
System.Drawing, 162
System.Linq, 278
TableAdapter, 246
tan, 69
Timer, 172
Tipos de datos, 26
TocharArray, 73
ToLower, 72
Toma de desiciones, 37
Top, 172
ToUpper, 72
TrackBar, 102
TreeView, 118
Trim, 73
Try-Catch, 117
tuplas, 223
Undo, 139
UPDATE, 224
Val, 31
ValidationExpression, 352
ValidationSummary, 350
ValidationType, 352
ValueMember, 276
ValueToCompare, 352
variable, 25
Ventana de depuracin de errores, 19, 320
Ventana de propiedades, 18, 320
View, 342
Visual Basic .NET, 10
Visual Studio .NET, 10
VScrollBar, 102
WebBrowse, 125
Where, 279
WHERE, 224
While, 48
Width, 175
Windows Authentication, 422
XmlDataSource, 355
Xor, 33
BIBLIOGRAFA
JAMSA, Kris. Superutilidades para Visual Basic .NET. Editorial Mc Graw Hill,
1ra. Edicin. Espaa. 2003.
INFOGRAFA
http://www.elquintero.net/Manuales.aspx?Cat=2&SubCat=6&jscript=true
http://www.willydev.net/descargas/Cursos/vbnet/index.html
http://www.dotnetspider.com/tutorials/AspNet-Tutorials.aspx
http://www.programacionfacil.com/visual_basic_net/start
http://www.programacion.com/asp/articulo/datosaspnet/
http://www.es-asp.net/tutoriales-asp-net/tutorial-61-81/efectuando-acceso-adatos.aspx
http://www.es-asp.net/tutoriales-asp-net/tutorial-61-96/enlazando-a-basesde-datos.aspx.
http://msdn.microsoft.com/es-es/library/y8c0cxey.aspx
http://msdn.microsoft.com/es-es/library/ya3sah92(VS.80).aspx
http://msdn.microsoft.com/es-es/library/ff855828(VS.80).aspx
http://msdn.microsoft.com/es-es/library/a127sbc5(VS.80).aspx
http://msdn.microsoft.com/es-es/library/h974h4y2(VS.80).aspx
http://social.msdn.microsoft.com/forums/es-ES/vbes/thread/087a5f2c-9eda44a5-9a58-6008b65c9a8e
http://www.recursosvisualbasic.com.ar/htm/tutoriales/datagrid-dbgrid.htm
http://www.recursosvisualbasic.com.ar/htm/tutoriales/controles_visual_basic
_menu.htm
ANEXO A
SQL Server
Este tutorial utiliza como base de datos SQL Server 2005 Express.
Dicha base de datos se puede instalar independientemente de la versin de Visual
Studio.
A.1 Conectarse a SQL Server.
Cuando se instala SQL Server, en los programas existe una opcin para conectarse a la
base de datos seleccione Microsoft SQL Server 2005. Realice los siguientes pasos:
1. Inicio - > Todos los Programas - > Microsoft SQL Server 2005.
2. SQL Server Management Studio Express.
Figura A.1 Opciones para conectarse a SQL Server.
Figura A.7 Base de datos bdlibrovbnet con sus elementos creados inicialmente.
Seleccione New Table para ver la ventana de diseo de la tabla, como se aprecia
en la siguiente figura:
Figura A.9 Ventana de diseo de una tabla.
Para agregar los campos a la tabla en Column Name escriba nit, en Data Type
seleccione nvarchar (50) (campo alfanumrico).
Figura A.10 Ventana con el campo nit creado.
Realice los mismos pasos para crear los campos: empresa, representante,
direccion, telefono, ciudad (todos con el mismo tipo de datos nvarchar (50)). Por
ltimo seleccione el campo nit y pulse el icono para crear la clave primaria (
figura quedara:
), la
Figura A.11 Ventana con los campos de la tabla y nit como llave primaria.
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.13 Ventana para escribir el nombre de la tabla creada.
Escriba como nombre de la tabla clientes y pulse el botn OK. Para trabajar con
algunos de los ejercicios planteados en el libro, cree las tablas pedidos, productos y
ventas con las estructuras que se muestran a continuacin:
Figura A.14 Estructura tabla pedidos.
Al finalizar de crear las tablas, la estructura de la base de datos con las tablas
quedara como se aprecia en la siguiente figura:
Figura A.17 Estructura de la base de datos.
Cuando se selecciona una tabla y se d clic derecho se visualiza la ventana con las
diferentes opciones que se pueden realizar como son:
1. New Table: Para crear una nueva tabla.
2. Modify: Permite modificar la estructura de una tabla que previamente se haba
creado.
3. Open Table: Para abrir una ventana de edicin para insertar o visualizar los
datos de una tabla.
4. Script Table as: Para crear, borrar, alterar, seleccionar, insertar, actualizar,
ejecutar una consulta, un archivo o una imagen.
5. View Dependencies: Para visualizar las dependencias (relaciones) de una tabla.
6. Rename: Para renombrar una tabla.
7. Delete: Para eliminar una tabla.
8. Refresh: Para refrescar o actualizar una tabla.
9. Properties: Para visualizar las propiedades de una tabla.
(Execute SQL),
Ahora se debern llenar con datos las tablas pedidos, productos y ventas de
acuerdo a las siguientes figuras:
Seleccione una tabla y pulse el botn Add. Realice esta misma operacin con
cada una de las tablas restantes. Al terminar pulse el botn Close para observar la
siguiente figura:
Figura A.29 Ventana Database Diagram con las tablas adicionadas.
Para crear la relaciones entre las tablas seleccione el campo nit de la tabla
cliente, de clic en el mouse y mantngalo pulsado y arrstrelo hacia el campo nit de la
tabla pedidos, suelte el mouse para ver la ventana Tables and Columns.
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.34 Ventana para escribir el nombre del diagrama creado.
Adicione las tablas clientes y pedidos. Al terminar pulse el botn Close para
visualizar la siguiente figura:
Figura A.38 Ventana de la vista con las tablas clientes pedidos.
para visualizar la
Pulse el botn Yes para obtener la ventana para escoger el nombre Choose
Name.
Figura A.41 Ventana para escribir el nombre de la vista creada.