24
Tutorial Visual Studio.NET 2003 Y ASP.NET Realizado por: Alonso Laguna Megino Control Avanzado y Sistemas REPSOL YPF – Puertollano

REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Embed Size (px)

DESCRIPTION

Realizado por Alonso Laguna para REPSOL YPF - Control Avanzado y Sistemas.Puertollano - 2006Programa de tutorías en el proyecto de la aplicación web de gestión de personal basada en ASP.NET.----

Citation preview

Page 1: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial

Visual Studio.NET 2003

Y

ASP.NET

Realizado por: Alonso Laguna Megino

Control Avanzado y Sistemas

REPSOL YPF – Puertollano

Page 2: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 2 -

Tutorial VS.net y ASP.net – Conceptos Básicos

Índice

1.- Entorno de Visual Studio.NET

1.1 - Interfaz del Programa.

1.2 - Vista Diseño. 1.3 - Vista Código.

1.4 - Propiedades de objetos y componentes. 1.5 - Editor de código.

2.- Programación en Visual Studio.NET

2.1 - Como crear un nuevo proyecto de Windows Forms. 2.2 - Elementos y Componentes de Windows Forms.

2.3 - Elementos de Datos para Visual Studio.NET. 2.4 - Variables locales, globales, públicas y estáticas.

2.5 - Depurar y compilar una aplicación. El generador de resultados. 2.6 – Implantación de Aplicaciones

3.- Programación con ASP.NET en Visual Studio.NET

3.1 - Como crear un nuevo proyecto de aplicación Web ASP.NET. 3.2 - La nueva vista diseño.

3.3 - Los nuevos componentes Web Forms y sus propiedades. 3.4 – Trabajo con Bases de Datos en ASP.NET

3.5 - El HTML en Web Forms.

4.- Tratamiento de Errores

Page 3: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 3 -

Entorno de Visual Studio.NET 2003

1.1 /1.2 - Interfaz del Programa

Esta es la vista principal de Visual Studio.NET. Las principales secciones se dividen en colores.

- Verde (parte central). Es la zona donde se trabaja

principalmente, se añaden objetos, se seleccionan, y en esta parte también aparece la vista de código cuando se selecciona la pestaña

correspondiente. - Rojo (parte izquierda). Herramientas de diseño. Aquí aparecen los

componentes de Windows Forms o Web Forms, los componentes de Datos para Base de Datos, los de HTML…

- Azul (parte superior derecha). El explorador de soluciones

cumple la función de organizar todos los elementos que componen el proyecto de forma anidada, en el explorador de soluciones se

incluyen desde formularios, a paginas aspx, estilos css, configuraciones, iconos…

- Amarillo (parte inferior derecha). Es el cuadro de propiedades. Automáticamente al seleccionar un elemento en la vista de diseño, el

cuadro de propiedades cambia automáticamente para ajustarse a las propiedades del objeto.

- Negro (parte inferior izquierda). Cada una de estas pestañas

tiene una función. Por un lado nos encontramos la Lista de Tareas, el uso que le puede dar el usuario a esta función es, como su propio

Page 4: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 4 -

nombre indica, asignar sus propias tareas en un orden determinado, y marcarlas o desmarcarlas según si han sido realizadas o estan

pendientes. Por otro lado, la pestaña “Resultados”, nos muestra los

procesos de compilación previos a la ejecución del programa, si hay algún error en su compilación, en “Resultados” podremos ver que ha

fallado.

1.3 Vista Código

La imagen mostrada en pantalla es la forma de Visual Studio.NET que permite al usuario introducir, eliminar o modificar código del proyecto. Las partes en azul y

en rojo de la parte superior de la imagen, tienen una función vital en la programación con objetos.

La lista desplegable General (color rojo) muestra todos los objetos con los que estamos trabajando, botones, cuadros de texto, datagrids… mientras que la azul

muestra los procedimientos que están disponibles para cada objeto seleccionado. Pondremos un par de ejemplos.

Page 5: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 5 -

Vemos que el objeto btnInsertar (botón) tiene los procedimientos que aparecen en

la lista desplegable de la izquierda, el mas común es Click, pero también están

disponibles el Command, el DataBinding…

Por otra parte, el objeto de Lista Deplegable “listdep” tiene otros procedimientos

disponibles, entre los que destaca por ejemplo el SelectedIndexChanged, procedimiento que sirve para ejecutar código cuando cambia la selección

principal de la lista.

1.4 – Propiedades de Objetos y Componentes

Las propiedades de los objetos y de los componentes de datos son imprescindibles para obtener los resultados deseados en nuestros proyectos con esta herramienta.

Cada elemento tiene unas propiedades distintas, pero hay algunas comunes entre

ellos que es necesario conocer.

Page 6: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 6 -

Name (ID) -> En ASP.NET la

propiedad “Name” se llama “ID”. Esta propiedad es el nombre del objeto en

codigo, en la imagen vemos arriba que se llama “ctLocDep”

Text -> Es el texto del que dispondrá un objeto, por ejemplo “Insertar”

Enabled -> Si el objeto esta activado o

desactivado, por ejemplo cuando un cuadro de texto es de solo lectura, su

estado es Enabled = False

Visible -> Si el objeto es visible o no

Font -> Desplegando las opciones,

encontramos el tipo de letra, el tamaño, las opciones de subrayado, negrita…

Por otra parte, los componentes de datos tienen otras opciones, no son objetos que

se vean a simple vista, pero si tienen algunas propiedades referentes a las conexiones que veremos un poco más adelante.

1.5 - Editor de Código

El editor de código de VS.NET da ciertas facilidades al programador a la hora de

escribir código, en forma de buscar propiedades o crear procedimientos, lo vemos mas claro en las siguientes imágenes.

En rojo vemos como al escribir el nombre de un objeto y añadirle “.” Al final, nos

sale automáticamente la lista de propiedades completas del objeto (cuadro azul). Al ir navegando por las opciones, nos sale una ayuda (verde) que nos muestra

información sobre la propiedad seleccionada.

De esta forma, nos resulta mas fácil conocer y usar las propiedades de cada objeto, y a su vez escribir el código de forma más rápida y sencilla.

Por otra parte, a la hora de crear procedimientos para un objeto (lo que hablamos

antes con esta imagen) nos resulta muy fácil, pues seleccionando el objeto y el

procedimiento que vamos a usar de las listas desplegables, el código nos genera el procedimiento automáticamente.

Page 7: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 7 -

Seleccionando los elementos “btnInsertar” y “Click” en las listas izquierda y derecha respectivamente el generador de código nos genera esto automáticamente.

Page 8: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 8 -

2. Programación en Visual Studio.NET

2.1 - Como crear un nuevo proyecto de Windows Forms

Para crear un nuevo proyecto de Windows Forms nos vamos a dirigir donde

muestra la siguiente imagen.

A continuación, en la siguiente ventana, elegiremos la opción “Aplicación para

Windows” el nombre de la aplicación (en este caso “Prueba del Tutorial”) y la

ubicación del proyecto.

Una vez pinchemos en aceptar, VS.NET nos llevará a nuestro conocido entorno de diseño, donde podremos empezar a trabajar en diseño y código en el formulario por

defecto que se crea al iniciar un nuevo proyecto.

Page 9: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 9 -

2.2 - Elementos y Componentes de Windows Forms VS.NET cuenta con multitud de elementos para interactuar, cada uno con propiedades exclusivas y funcionalidad distinta, en este apartado vamos a explicar

algunos de los mas usados en cualquier formulario.

Para ello tenemos el ANEXO I – Creación de Aplicaciones Windows incluido en

este documento, donde encontraremos información de Formularios, Controles y sus propiedades más habituales.

2.3 – Elementos de Datos

Para tratar con bases de datos, VS.NET cuenta con una serie de objetos que hacen

más fácil la conexión con bases de datos que si lo hiciéramos por código.

Podemos calificarlos en varios tipos.

Conexiones Oledbconnection Odcbconnection SQLconnection OracleConnection

Las conexiones son el primer paso para trabajar con bases de datos, al incluir una

en un formulario, debemos indicarle la propiedad “Connection String”, que

mediante asistente, nos permitirá conectarnos a la base de datos deseada, ya sea Oracle, Access… para ello usaremos el tipo de conexión que mas convenga.

Page 10: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 10 -

Adaptadores Oledbadapter Odbcadapter SQLadapter OracleAdapter

Los adaptadores dependen de una conexión, al incluir uno aparecerá un asistente para crearnos las consultas SQL que necesitemos usar. Un adaptador esta

compuesto de un comando SELECT, y otros INSERT, DELETE y UPDATE que pueden ser modificados a nuestro gusto para manipular bases de datos.

Comandos Oledbcommand Odbcommand SQLcommand Oraclecommand

Los comandos, son objetos que albergan una consulta SQL asociada a una conexión. Pueden ser de SELECT, INSERT, DELETE o UPDATE, su uso más comun

es el de interactuar con otro objeto y suelen llevar información distinta al de un

adaptador.

Conjunto de Datos (Dataset)

Los conjuntos de datos se crean una vez se haya creado un Adaptador. Consiste en un objeto que alberga información de una tabla, directamente relacionada con un

Adaptador. Por ejemplo, para usar un DataGrid es indispensable el uso de un Conjunto de Datos para llenarlo.

Todos estos componentes dependen de una conexión, a excepción de el Conjunto

de Datos que además necesita de un Adaptador.

2.4 Variables

Como en cualquier entorno de programación, las variables cumplen un papel clave

en el desarrollo de aplicaciones, en este manual repasaremos por encima los tipos de variables y como definirlas, en especial el DataReader.

Dando por hecho que conocemos los tipos STRING, NUMBER, INTEGER… la secuencia para definirlas es así

Public HOLA As Integer

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

System.EventArgs) Handles MyBase.Load

Dim ADIOS As String

Page 11: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 11 -

- “HOLA” es una variable publica de tipo entero, que podremos usar en todo el código, su nombre es irrepetible para ninguna otra.

- “ADIOS” es una variable privada de tipo cadena, que solo se puede usar en el procedimiento donde se encuentra (Page_Load).

Maticemos que las variables públicas no pueden usarse entre distintos formularios,

a no ser que las alojemos en un módulo independiente en el proyecto.

Para crear un nuevo módulo, debemos fijarnos en la imagen.

Clic derecho en el nombre del proyecto -> Agregar -> Agregar Componente

Page 12: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 12 -

Una vez acabemos de crear el modulo, aparecerá una pestaña con su nombre en la parte superior de la vista diseño o código, donde podremos añadir las instrucciones

que queramos que cumpla.

Por otro lado, hay una variable especial en el uso de bases de datos que nos

resultará muy útil, las variables DataReader (OledbdataReader, OdcbdataReader, SQLDataReader y OracleDataReader). Estas variables, con la ayuda de un bucle y

de un comando con instrucciones en SQL funcionan como una lista de registros.

Para poner un ejemplo, veremos como funciona un OracleDataReader.

Imaginemos un comando del tipo OracleCommand con la instrucción “SELECT DEPT_NO FROM DEPART”. Esta consulta generará una serie de registros, por lo que

no podríamos almacenarla en una variable normal.

cnxPral = OracleConnection drDeps = OracleDataReader

SelDepsNum = OracleCommand (SELECT DEPT_NO FROM DEPART)

cnxPral.Open()

Dim drDeps As OracleDataReader

If Not IsPostBack Then

drDeps = SelDepsNum.ExecuteReader

While drDeps.Read

listDep.Items.Add(drDeps.Item("DEPT_NO"))

End While

drDeps.Close()

End If cnxPral.Close()

Línea a línea esto funcionaria de la siguiente manera:

- Abrimos la conexión - Definimos la variable DataReader

- Si la condición IsPostBack no es cierta (explicaremos mas adelante el IsPostBack)

- Asignamos al DataReader los registros producidos por el OracleCommand. - Mientras el Lector siga leyendo

Page 13: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 13 -

- Almacenamos en un objeto de lista el item “DEPT_NO” que tiene actualmente el DataReader

- Finalizamos Mientras

- Cerramos el lector (para volver a usarlo si es necesario) - Cerramos condicional

- Cerramos conexión.

De esta forma, un objeto de lista (tipo DropDownList) almacenaría todos los registros producidos por la sentencia “SELECT DEPT_NO FROM DEPART”

2.5 - Depurar y compilar una aplicación.

Una vez finalizado nuestro trabajo en diseño y código, estamos listos para probar si

nuestra aplicación funciona correctamente y como nosotros deseamos.

Para ello, pulsaremos en este botón:

Entonces, en la parte inferior del programa nos aparecerá la ventana del Generador

de Resultados, donde nos ira mostrando el proceso de la depuración, entonces

pueden pasar dos cosas.

a) - El programa se ejecuta correctamente: Lo que no quiere decir exactamente

que funcione correctamente.

b) - El programa no se ejecuta correctamente: Nos aparecerá un mensaje advirtiéndonos este hecho, y nos preguntará si queremos continuar, en caso

de responder “Sí” se intentara omitir la linea de código que ha dado el error, en caso de responder “No” la depuración se para para mostrarnos la línea en

la que nuestro proyecto ha fallado.

2.6 - Implantación de Aplicaciones En la mayoría de los casos, el ultimo paso en nuestro proyecto será crear un

archivo instalador con el mismo para distribuirlo o compartirlo en un archivo .exe / .msi.

Con este fin se adjunta a este documento el ANEXO II – Implantación de

Aplicaciones, donde paso a paso aprenderemos a realizar esta función.

Page 14: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 14 -

Programación con ASP.NET en VS.NET

3.1 - Como crear un nuevo proyecto de aplicación web

ASP.NET

De forma muy parecida a como creabamos un nuevo proyecto de Windows Forms,

el primer paso es crear el proyecto.

Una vez en la ventana de nuevo proyecto, elegiremos la opción de Aplicación Web

ASP.NET. Y el nombre del proyecto será el mismo que el del directorio donde lo asignemos, en este caso “ASP-Prueba-Tutorial”. De ahora en adelante, podremos

visualizarlos en la ubicación “http://localhost/NombreProyecto” , y el directorio donde se encuentran en local es “HD/Inetpub/wwwroot/NombreProyecto”, a

diferencia de los proyectos de Windows Forms que se guardaban en la carpeta “Mis Proyectos de Visual Studio” en “Mis Documentos” (por defecto). Aún asi en esta

carpeta, se seguirá creando el archivo de solución pero no los archivos de

contenido. Estos estarán en la ubicación antes mencionada.

Page 15: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 15 -

3.2 – La nueva vista diseño.

A primera vista, la diferencia que más nos llamara la atención con respecto a

Windows Forms será la vista diseño.

En verde vemos los Elementos y Componentes de Web Forms. Han aparecido algunos nuevos para Web Forms y otros que utilizabamos en Windows Forms han

desaparecido o han sido renombrados.

En Rojo vemos la pestaña donde podremos alternar entre la vista de diseño, y la vista del código HTML de la pagina web (no confundir con la vista del código VB).

En Azul vemos como casi todas las propiedades han sido renombradas.

La propiedad que veremos ahora será la propiedad pageLayout, que nos marcará mucho a la hora de diseñar nuestra aplicación. Esta propiedad la ponemos poner a

dos valores.

- GridLayout: Diseño en cuadricula por coordenadas “x” e “y”, de igual forma que en Windows Forms.

- FlowLayout: Diseño de flujo, como si se tratase de un documento de texto.

Page 16: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 16 -

3.3 - Los nuevos componentes Web Forms y sus

propiedades.

ASP.NET maneja los objetos de la misma forma que cuando trabajábamos con los

Windows Forms, por ello, el uso de cada objeto es idéntico al que se explicaba en el ANEXO I – Creación de Aplicaciones en Windows, con la única diferencia del

renombre de sus propiedades.

El cambio mas significativo se encuentra en la importante propiedad “Name”, que ahora se llama “(ID)” (solo en objetos de Web Forms, no en elementos de bases de

datos). Esta propiedad como ya sabemos, sirve para asignar a un objeto un nombre

con el que referirnos a él en código.

Por otra parte, cuando empecemos a practicar con aplicaciones en ASP.NET nos daremos cuenta de que otras propiedades han cambiado la forma en las que se

usaban, por ejemplo el tamaño de la fuente, que en esta ocasión trabaja con los valores estándar de la Web “X-Small,Small,Medium..” en vez de con valores

numéricos ajustables.

3.4 – Trabajo con Bases de Datos en ASP.NET Ya conocemos los elementos de Bases de Datos, en este tutorial nos centraremos

en los objetos para conexiones con bases de datos ORACLE.

Vamos a ir viendo paso a paso como establecer una conexión con la tabla DEPART de una base de datos de prueba.

1º - Añadimos el objeto “OracleConnection” a nuestro formulario siempre en

modo GridLayout. Cambiamos su propiedad “Name” a “cnxDepart” y

pulsaremos en el asistente de la propiedad “Connection String” y elegimos crear una nueva conexión. Nos aparecerá otra ventana.

Imagen - 1

Imagen - 2

Page 17: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 17 -

Escribiremos el nombre de la BD y el login con el que acceder, probaremos la

conexión y pulsaremos en Aceptar.

NOTA: Si la BD tuviera algún tipo de acceso especial aparte de la del login de

usuario, tendríamos que ir a la pestaña “Todas” de la Imagen – 2 y modificar sus propiedades correspondientes.

En principio no debería haber ningún problema. Ahora tenemos creada nuestra

conexión, el siguiente paso será aprender a sacarle provecho.

Todo absolutamente lo que hagamos a partir de ahora depende directa o

indirectamente de este objeto que hemos creado, para comprobar que la conexión realmente funciona haremos la siguiente prueba:

En el procedimiento Page_Load abriremos y cerraremos la conexión, para acceder

al Page_Load solo hay que hacer doble clic sobre el formulario.

Tras escribir estas dos simples líneas de código que nos indicaran si todo ha ido bien o no, compilaremos el proyecto haciendo clic en

Si nos aparece una página Web totalmente en blanco, todo correcto. Los errores de

compilación en ASP.NET se muestran en la página Web que nos aparece al compilar, indicándonos el código del error y la parte donde se ha producido.

Acabamos de conectar con una Base de Datos Oracle en ASP.NET, ahora

aprenderemos a manipularla desde un formulario Web Forms, que es el verdadero fin de todo esto.

Vamos a crear el siguiente formulario en vista de diseño:

Page 18: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 18 -

Tenemos los siguientes elementos:

- Label: Nº Departamento

- Label: Nombre - Label: Localidad

- Textbox: txtNumDep

- Textbox: txtNomDep - Textbox: txtLocDep

- Button: btnInsertar - Button: btnModificar

- Button:btnEliminar

La idea es bien simple, vamos a trabajar con la tabla “DEPART”, compuesta por los campos DEPT_NO, DNOMBRE y LOC, donde DEPT_NO es clave primaria auto-

numérica.

* El botón INSERTAR insertará un registro completo en la tabla

* El botón MODIFICAR permitirá actualizar los campos DNOMBRE y LOC pero no el campo DEPT_NO

* El botón ELIMINAR permitirá eliminar un registro con solo introducir el campo DEPT_NO

Para este fin vamos a usar un Adaptador, recordamos que un Adaptador es un

objeto de datos que depende de una conexión, y que a su vez de forma interna

contiene un comando SELECT, un comando INSERT, otro UPDATE y un DELETE.

Al igual que hicimos con la conexión, insertaremos de igual forma el objeto OracleDataAdapter. Justamente al insertarlo nos aparecerá un asistente para

hacernos las cosas mas fáciles.

Page 19: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 19 -

Nos da la bienvenida al asistente

Elegimos la conexión para el adaptador (en

este caso la que hemos creado)

Le indicaremos que usaremos instrucciones

SQL para recoger los datos del adaptador

Cargaremos las instrucciones SQL, en este

caso nos interesa cargar en el adaptador los

datos con los que vamos a trabajar… “SELECT

DEPT_NO, DNOMBRE, LOC FROM DEPART”

Si la sentencia SQL introducida es correcta, el asistente nos mostrará que ha generado

correctamente las sentencias SELECT, INSERT, UPDATE Y DELETE del adaptador.

Una vez finalizado el asistente, nos iremos a las propiedades del adaptador, y lo configuraremos a nuestro gusto.

Page 20: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 20 -

Como ya hemos dicho, cada adaptador

consta de 4 subcomandos, SELECT, INSERT, UPDATE y DELETE. Que podemos modificar

de forma semi-independiente.

Cada comando consta de estas partes principales:

Name: Nombre del Comando (cmdSelAd) Connection: La conexión de la que depende

CommandText: Instrucción SQL que alberga, automáticamente generada por el asistente.

NOTA: No es recomendable modificar la propiedad CommandText del SelectCommand de un Adaptador, pues los otros tres comandos dependen de la

secuencia que alberga este.

Vamos a ver un ejemplo de cómo modificar las sentencias, y como adaptarla a los resultados que queremos, lo vamos a hacer con el DeleteCommand.

Accederemos a las propiedades del Adaptador, y en la propiedad “Name” del DeleteCommand le daremos un nombre intuitivo, para que nos sea más facil

trabajar con el cuando escribamos el código, para seguir con la nomenclatura usada en este tutorial, lo llamaremos “cmdDelAd”.

Después pulsaremos en el botón para iniciar el generador de consultas en la propiedad

CommandText

Este es el generador de consultas de Visual Studio.NET

Page 21: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 21 -

Verde: Haciendo clic derecho

en el área aparecerán opciones, tales como agregar

tabla para hacer uniones, quitar tablas…

Azul: Tabla agregada,

podemos agregar o quitar campos.

Amarillo: Propiedades de los campos agregados.

Rojo: Consulta que contiene el comando.

Nos centraremos en la parte de la consulta, la marcada en color rojo. Ampliada

vemos que la secuencia introducida por defecto es la siguiente:

Se nos ha generado una consulta SQL DELETE por defecto, que en principio no esta mal, pero que es bastante complicada para lo que queremos hacer. La siguiente

consulta hace exactamente lo mismo con mucho menos código:

DELETE FROM DEPART WHERE DEPT_NO = :DEPT_NO;

¿Por que marcamos en rojo :DEPT_NO?. Bien sencillo, a diferencia de la

programación con Visual Basic convencional, en ASP.NET lo marcado en rojo significa que es una variable donde nosotros albergaremos el parámetro que la

sentencia SQL va a usar. Si por ejemplo :DEPT_NO fuese igual a 5, la sentencia borraría de la tabla DEPART el registro cuyo DEPT_NO fuese igual a 5.

Ahora veremos el ejemplo aplicado a este pequeño proyecto que estamos

desarrollando.

Vamos a empezar a programar el evento del botón “Eliminar”, para ello si hacemos

doble clic en el objeto, el generador de código nos creara automáticamente el procedimiento doble clic para ese objeto.

1 Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e

2 As System.EventArgs) Handles btnEliminar.Click

3 Try

4 With cmdDelAd.Parameters

5 .Clear()

6 .Add(":DEPT_NO", Request.Form("ctNumDep"))

7 End With

8 cnxDepart.Open()

9 cmdDelAd.ExecuteNonQuery()

10 cnxDepart.Close()

11 ctNumDep.Text = ""

12 ctNomDep.Text = ""

Page 22: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 22 -

13 ctLocDep.Text = ""

14 etError.Text = "Registro Eliminado Correctamente"

15 Catch

16 etError.Text = "Imposible de Eliminar. Error"

17 etError2.Text = "[ Compruebe que exista el Nº de

18 Departamento ]"

19 End Try

20 End Sub

Pueden habernos asustado estas 20 líneas de código, pero realmente es muy fácil,

todo se resume en comprender tres pasos.

1) Llamar al comando 2) Introducirle los parámetros que la sentencia SQL nos requiere.

3) Ejecutar el comando

Vamos a explicar paso a paso estas líneas de código para entender mejor el

procedimiento clic del botón eliminar.

Page 23: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 23 -

Línea Función

1 Declaración del procedimiento “clic” del objeto btnEliminar (creado automáticamente por el generador)

2 “”

3 Inicio del bloque Try-Catch. Mas información en ANEXO III –

Tratamiento de Errores

4 Inicio del bloque with con el comando DELETE del Adaptador (cmdDelAd)

5 Usamos la propiedad del comando .Clear para limpiar los posibles

parámetros que pueda contener antes de introducirle ningún parámetro.

6 Esta propiedad del comando cmdDelAd sirve para pasarle el/los parámetros que la sentencia necesita, en este caso solo es uno, por eso

solo hay una linea con .Add. Explicaremos la sintaxis de esta linea. .Add(":DEPT_NO", Request.Form("ctNumDep"))

En rojo vemos el nombre de la variable de la que antes hablábamos, la que le poníamos en la consulta del comando, entrecomillada.

En Azul le indicaremos de donde va a coger el valor que le pasaremos

por parámetro, para ello en ASP.NET usamos la función “REQUEST.FORM” y el nombre del campo en el formulario donde lo

cojera, en este caso ctNumDep, que es el que contiene el numero del departamento.

7 End With, puesto que no hay que trabajar mas con el comando cmdDelAd.

8 Abrimos la conexión cnxDepart

9 Ejecutamos el comando con la orden ExecuteNonQuery

10 Cerramos la conexión cnxDepart

11 Limpiamos los cuadros de texto (Textbox)

12 “”

13 “”

14 Mostramos en una etiqueta un mensaje diciendo que todo ha ido bien

15 Inicio bloque Catch (si no funciona, se ejecutará esto). Mas información en ANEXO III – Tratamiento de Errores

16 Mostramos en una etiqueta un mensaje con el posible error.

17 “”

18 “”

19 Fin del bloque Try-Catch

20 Fin del procedimiento (generado por el programa junto a la línea 1 y 2)

Esto de una forma u otra, lo vamos a usar muchísimo trabajando con bases de datos, pues es lo básico para manipularlas. Vamos a hacer una pequeña práctica

con esto.

Page 24: REPSOL YPF - Tutorial ASP.NET y MS Visual Studio.NET 2003

Tutorial Visual Studio.NET 2003 y ASP.NET

Control Avanzado y Sistemas

- 24 -

PRACTICA nº 1 – ASP.NET

En esta sección del tutorial, hemos visto como conectar y manipular una base de

datos, concretamente la tabla DEPART. El fin de este ejercicio consiste en programar los botones Insertar y Modificar del formulario para que hagan sus

respectivas funciones de forma correcta. Tened en cuenta que la forma es idéntica, con la única diferencia de la sentencia SQL del comando INSERT y UPDATE del

adaptador.

Cosas a tener en cuenta:

- Retocar sentencia SQL de los comandos INSERT y UPDATE para

verificar que cumplen con nuestro cometido. - Es opcional el controlar errores (inserciones con claves duplicadas,

registros que no existen…)

3.5 – El HTML en ASP.NET

Pese a que ASP.NET es un lenguaje de programación basado en la comunicación entre el usuario y el servidor, no debemos olvidar que al fin y al cabo sigue siendo

una página Web, por lo que podemos aprovechar también las ventajas que puede ofrecernos. Para ello podemos ir a la vista de HTML, donde veremos las referencias

a los objetos que hemos creado en ASP.NET, y el código clásico de HTML, que podemos modificar para retocar nuestro formulario.

Tratamiento de Errores

En el ANEXO III – Tratamiento de Errores adjuntado a este tutorial,

encontraremos la explicación a los múltiples tipos de errores, aprenderemos a prevenirlos, veremos la estructura “Try… Catch… Finally” y usaremos la clase

Exception.

Estos conocimientos vendrán muy bien a la hora de controlar los errores en

nuestros proyectos de Visual Studio.NET.