Manejo de datos con Visual Basic y ASP.NET

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Manejo de datos con Visual Basic y ASP.NET"

Transcripción

1 Manejo de datos con Visual Basic y ASP.NET Carlos Alberto Vanegas Ingeniero de Sistemas Especialista en Ingeniería de Software Maestría en Ingeniería de Sistemas Profesor cátedra, Universidad Libre Profesor, Universidad Distrital Francisco José de Caldas Bogotá agosto

2 2

3 Contenido PRÓLOGO... 6 INTRODUCCIÓN MANEJO DE ARCHIVOS Clase File Ejemplo clase File Clases StreamWriter y StreamReader Ejemplo clases StreamWriter y StreamReader Controles OpenFileDialog y SaveFileDialog Ejemplo con los controles OpenFileDialog y SaveFileDialog Archivos secuenciales Ejemplo de archivos secuenciales Archivos binarios Ejemplo de archivos binarios Importar y exportar datos de una hoja de Excel Ejemplo importar y exportar datos de Excel Exportar datos a Word Ejemplo de exportar datos de VB.NET a Word Ejercicios de archivos BASES DE DATOS Tipos de bases de datos Relacionales Orientada a objetos Lenguaje de Consulta Estructurado (S.Q.L.) Comandos Cláusulas Operadores lógicos Operadores de Comparación Funciones de agregado Sentencias Básicas SQL CREATE DATABASE DROP DATABASE CREATE TABLE DROP TABLE INSERT ALTER SELECT DELETE UPDATE INNER JOIN Conexión a bases de datos Ejemplos de conexión a bases de datos Conexión a una base de datos de SQL Server Conexión a una base de datos de ACCESS Conexión a una base de datos de ORACLE con código Conexión a una bases de datos con el Explorador de servidores Conexión a SQL Server con el Explorador de servidores Ejercicios de conexión a bases de datos DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA Ejemplos de desplazamiento por los registros de una tabla Formulario con campos de texto y botones Formulario con una cuadrícula y botones Formulario con una cuadrícula y un control BindingNavigator Ejercicios de desplazamiento por los registros de una tabla

4 4. OPERACIONES CON TABLAS DE UNA BASE DE DATOS Ejemplos de operaciones con tablas de una base de datos Insertar registros en una tabla utilizando campos de texto Insertar registros en una tabla utilizando un DataGridView Buscar registros por un campo específico Buscar registros por cualquier campo de una tabla Buscar registros mientras se escribe Ejecutar instrucciones SQL sobre una base de datos Eliminar registros de una tabla Actualizar registros de una tabla Generar un reporte de los registros de una tabla Ejercicios de operaciones con tablas de una base de datos MANEJO DE RELACIONES ENTRE TABLAS EN UNA BASE DE DATOS Ejemplos de relación de tablas de una base de datos Visualizar registros de tablas relacionadas Relación de tablas utilizando dos DataGridView Relación de tablas utilizando ComboBox Reporte con tablas relacionadas Ejercicios de relación de tablas MANEJO DE ARCHIVOS CON ASP.NET Manejo de Archivos de texto con ASP.NET Ejemplos de manejo de archivos con ASP.NET Cargar archivo con el control FileUpLoad Manejo de archivos de texto con StreamWriter y StreamReader Guardar /Leer Archivo de texto con FileSystem Ejercicios de archivos de texto con ASP.NET BASE DE DATOS CON ASP.NET Ejemplos de manipulación de bases de datos con ASP.NET Pagina Web con los campos de una tabla Conexión a una base de datos desde un Formulario Web Conexión a SQL Server con el control DetailsView Página Web con desplazamiento de registros Página Web para insertar registros en una tabla Pagina Web para eliminar registros de una tabla Página Web para modificar registros Página Web con un informe de los registros de una tabla Ejercicios de bases de datos con ASP.NET MANEJO DE TABLAS RELACIONADAS CON ASP.NET Ejemplos de relación entre tablas de una base de datos con ASP.NET Relación de dos tablas con DropDownList y GridView Relación de tablas utilizando GridView y FormView Página Web con tres tablas relacionadas Ejercicios relación de tablas con ASP.NET ANEXO A CREACIÓN DE APLICACIONES WINDOWS FORMS A.1 Crear un nuevo proyecto Visual Basic.NET (Windows Forms) A.2 Elegir plantilla de aplicaciones A.3 Crear la interfaz de usuario A.4 Establecer las propiedades de los controles A.5 Escribir código A.6 Guardar la aplicación A.7 Ejecutar la aplicación Windows Forms A.8 Cerrar y abrir un proyecto ANEXO B CREACIÓN DE APLICACIONES WEB ASP.NET B.1 Crear un nuevo Sitio Web (ASP.NET)

5 B.2 Elegir plantilla de aplicaciones B.3 Crear la interfaz de usuario B.4 Establecer las propiedades de los controles B.5 Escribir código B.6 Ejecutar la aplicación Web B.7 Cerrar y abrir un sitio Web ANEXO C SQL SERVER C.1. Conectarse a SQL Server C.2 Crear una base de datos C.3 Crear tablas en la base de datos C.4 Crear Diagramas de una base de datos C.5 Crear una vista ANEXO D ORACLE DATABASE 10G EXPRESS D.1 Instalación D.2 Creación de una tabla en la base de datos con usuario system ÍNDICE BIBLIOGRAFÍA INFOGRAFÍA

6 PRÓLOGO Manejo de datos con Visual Basic y ASP.NET proporciona los elementos necesarios para el manejo de datos desde el entorno del lenguaje de Programación Visual Basic.NET con aplicaciones Windows Forms y ASP. Este libro ha sido pensado para todos aquellos que estén interesados en conocer cómo se puede guardar o recuperar información desde archivos de texto plano, importar o exportar desde Visual Basic.NET datos a otros programas como Excel, Word, etc... Además realizar la conexión a diferentes bases de datos, desplazarse entre los registros de una tabla, realizar operaciones entre tablas y la relación de éstas. El material didáctico del libro se basa en el aprendizaje guiado por la conceptualización de cada tema, la realización de ejemplos prácticos explicados y con gráficos que visualizan el objetivo de los ejercicios. Todos los ejemplos del libro han sido compilados y ejecutados con el programa Microsoft Visual Studio 2008 (la mayoría de los ejemplos también los puede compilar y ejecutar con las versiones Express Edition Visual Basic 2005/2008 y Visual Web Developer 2005/2008); cada ejemplo es explicado detalladamente, solamente se omiten explicaciones en aquellos casos en donde se ha realizado con anterioridad. Este libro se dirige fundamentalmente a personas que conozcan el lenguaje de programación Visual Basic en el entorno.net, es decir, en este libro se supone que el lector tiene conocimiento sobre los conceptos básicos de programación de este lenguaje, sabe crear y ejecutar proyectos de Visual Basic en el entorno.net (Windows Forms, ASP), aunque en los anexos A y B se explica en forma breve como trabajar con proyectos Windows Forms y sitios Web (ASP.NET). Además, que tenga conocimientos sobre programación orientada a objetos. También es recomendable tener nociones concernientes al lenguaje estructurado de consulta SQL y HTML. Por otro lado, es indispensable que tenga la conceptualización teórica y ojalá práctica de bases de datos. Capítulos del libro Manejo de datos con Visual Basic y ASP.NET contiene 8 capítulos y 4 anexos distribuidos de la siguiente forma: Capítulo 1, Manejo de Archivos: Se conceptualiza sobre las clases File, StreamWriter, StreamReader, los controles OpenFileDialog y SaveFileDialog, como también los conceptos de archivos secuenciales y binarios. Además, cómo importar y exportar datos. Todo esto apoyado con ejemplos explicados sobre cada tema. Capítulo 2, Bases de datos: Se trabajan los conceptos básicos de bases de datos, así como también se realiza una descripción del lenguaje estructurado de consulta SQL. Además se realizan ejemplos de sentencias básicas de SQL. Por otro lado, se desarrollan ejemplos para obtener la conexión a las bases de datos SQL Server, Access y Oracle. Capítulo 3, Desplazamiento por los registros de una tabla: Básicamente lo que se realiza en este capítulo son diversos ejemplos que permiten el desplazamiento entre los registros de una tabla perteneciente a una base de datos. 6

7 Capítulo 4, Operaciones con tablas de una base de datos: Se manejan ejemplos de las distintas operaciones que se pueden realizar con los registros de una tabla como son: insertar, consultar, buscar, eliminar, actualizar y generar reportes. Cada operación es ilustrada con ejemplos debidamente explicados. Capítulo 5, Manejo de las relaciones de tablas en una base de datos: Aquí se conceptualiza y se crean ejemplos sobre la relación de tablas de una base de datos utilizando diferentes controles que ofrece Visual Basic.NET, así como la creación de reportes con tablas relacionadas. Capítulo 6, Manejo de Archivos con ASP.NET: Se conceptualiza sobre ASP. NET, como también se crean diversos ejemplos de escritura y lectura de archivos de texto plano en una aplicación Web. Capítulo 7, Bases de datos con ASP.NET: Se diseñan ejemplos ilustrativos sobre la operación y manipulación de los registros de una tabla utilizando una aplicación Web. Con los ejemplos se puede verificar la estructura de una tabla, la conexión a una base de datos con distintos controles, el desplazamiento de registros y las operaciones de inserción, eliminación, modificación de registros, como también la creación de reportes. Capítulo 8, Manejo de tablas relacionadas con ASP.NET: En este capítulo se diseñaron ejemplos que permiten obtener la relación entre tablas en aplicaciones Web utilizando diferentes controles de Visual Basic. NET. Anexo A: Se explica en forma breve cómo se crean proyectos Windows Forms, el diseño de la interfaz de usuario, la modificación de los controles del proyecto, la escritura de código, así como guardar y ejecutar un proyecto Windows Forms. Además, cómo cerrar y/o abrir un proyecto Windows Forms. Anexo B: Se explica cómo se crean nuevos sitios Web, el diseño de la interfaz de usuario, la modificación de los controles del sitio Web, la escritura de código y la ejecución de un sitio Web. Además, cómo cerrar y/o abrir un sitio Web. Anexo C: Se explica cómo se realiza la conexión a SQL Server, así como la creación de una base de datos, la creación de tablas, diagramas y vistas dentro de la base de datos. Anexo D: En este anexo se explica cómo se realiza la instalación de la base de datos Oracle Database 10g Express Edition; también, cómo se crea e insertan datos en una tabla de dicha base de datos. Como apoyo complementario a esta publicación se ha incluido un CD que contiene cada uno de los capítulos del libro, los anexos explicativos del software que se utilizó, el código fuente de todos los ejemplos mostrados en el libro por capítulo, así como el software utilizado y otros aspectos de interés. Además se incluye el documento en pdf. Si al insertar el CD no se ejecuta automáticamente, el usuario deberá abrir el archivo inicio.html que se encuentra en el directorio raíz del CD. Una vez abierto, se podrá ver la página de inicio; pulse la imagen Manejo de datos con Visual Basic y ASP.NET, se visualizará la página principal donde encontrará los vínculos para cada capítulo, los anexos, el software, los archivos con el código fuente y el documento del libro. 7

8 INTRODUCCIÓN Visual Basic.NET (VB.NET) es una versión de Visual Basic enfocada al desarrollo de aplicaciones.net, e implementada sobre el Framework.NET (más adelante se explica este tema). Dicho lenguaje de programación es orientado a objetos, donde es posible la creación de clases que pueden derivarse de otras mediante herencia, la sobrecarga de métodos, el control estructurado de excepciones o la creación de aplicaciones con múltiples hilos de ejecución, además de contar con la extensa librería de.net, con la que permite desarrollar tanto aplicaciones Windows Forms y formularios Web, como el manejo de diversos proveedores de bases de datos, el envío de datos mediante documentos XML 1 y la generación de informes a partir de archivos de texto, bases de datos, etc. Para programar con Visual Basic.NET generalmente se utiliza el entorno de desarrollo integrado Microsoft Visual Studio (2003, 2005, 2008), aunque también es posible trabajar con el software libre SharpDevelop. Todos los programas basados en Visual Basic. NET requieren un Framework.NET para ejecutarse. Microsoft.NET. Microsoft.NET es un entorno integrado de ejecución, compilación, depuración y desarrollo de aplicaciones. Los diferentes lenguajes de programación de la plataforma comparten el mismo entorno, normas, reglas y librerías de Microsoft.NET Framework. La plataforma.net proporciona software que permite conectar sistemas, información, dispositivos y usuarios distintos de un modo más unificado y personalizado. Incorpora servicios Web XML como medio para permitir la interoperabilidad entre tecnologías diferentes. También proporciona a los desarrolladores de software las herramientas y la tecnología para crear rápida y eficazmente soluciones de negocio que abarcan múltiples aplicaciones y múltiples dispositivos cliente entre diversas organizaciones, además permite a los usuarios controlar qué información, cómo y cuándo se les entrega. Sus componentes de trabajo son: El conjunto de lenguajes de programación: además del Visual Basic, la plataforma.net puede trabajar los lenguajes de programación C++, C#, J# entre otros. La biblioteca de clases base o BCL: maneja las operaciones básicas involucradas en el desarrollo de aplicaciones, algunas operaciones son: interacción con dispositivos periféricos, manejo de datos, administración de memoria, administración de componentes Web, herramientas graficas, operaciones matemáticas, generación de código, etc. La BCL se clasifica en:.net, Windows Forms, ASP.NET, ADO.NET. El entorno común para ejecución de lenguajes o CLR (Common Language Runtime) es el entorno de ejecución en donde se cargan las aplicaciones desarrolladas en los diferentes lenguajes. Esta herramienta compila el código fuente de los lenguajes soportados por.net en un código intermedio (Microsoft Intermediate Language MSIL o CIL 2 ). Para generarlo, el compilador se basa en 1 XML es el estándar de Extensible Markup Language. XML no es más que un conjunto de reglas para definir etiquetas semánticas que nos organizan un documento en diferentes partes. XML es un metalenguaje que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados. 2 Lenguaje ensamblador orientado a objetos y está basado en pilas. 8

9 la específicación CLS (Common Language Specification) que determina las reglas necesarias para crear el código MSIL compatible con el CLR. Además, para ejecutarse necesita un compilador JIT 3 (Just-In-Time) el cual genera el código máquina 4 real que se ejecuta en la plataforma del cliente. De esta forma se consigue con.net independencia de la plataforma de hardware..net Framework El.NET Framework es un conjunto de servicios de programación diseñados para simplificar el desarrollo de aplicaciones sobre el entorno distribuido de Internet. El diseño de.net Framework está enfocado a cumplir los objetivos siguientes: Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar en forma local pero distribuida en Internet o ejecutar en forma remota. Proporcionar un entorno de ejecución de código que reduzca lo máximo posible la implementación de software y los conflictos de versiones. Ofrecer un entorno de ejecución de código que fomente la ejecución segura del mismo, incluso del creado por terceras personas desconocidas o que no son de plena confianza. Proporcionar un entorno de ejecución de código que elimine los problemas de rendimiento de los entornos en los que se utilizan secuencias de comandos o intérpretes de comandos. Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web..NET Framework contiene dos componentes principales: Common Language Runtime y la biblioteca de clases de.net Framework. Common Language Runtime es el fundamento de.net Framework. El motor en tiempo de ejecución se puede considerar como un agente que administra el código en tiempo de ejecución y proporciona servicios centrales, como la administración de memoria, la administración de subprocesos y la interacción remota, al tiempo que aplica una seguridad estricta a los tipos y otras formas de específicación del código que fomentan su seguridad y solidez. De hecho, el concepto de administración de código es un principio básico del motor en tiempo de ejecución. El código destinado al motor en tiempo de ejecución se denomina código administrado, a diferencia del resto de código, que se conoce como código no administrado. La biblioteca de clases, el otro componente principal de.net Framework, es una completa colección orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas de interfaz gráfica de usuario (GUI) o de línea de comandos hasta las 3 Técnica para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir el bytecode a código máquina nativo en tiempo de ejecución. 4 Sistema de códigos directamente interpretable por un circuito microprogramable, como el microprocesador de un computador o el microcontrolador de un autómata (un PLC). Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. 9

10 aplicaciones basadas en las innovacíones más recientes proporcionadas por ASP.NET, como los formularios Web Forms y los servicios Web XML. En la ilustración siguiente se muestra la relación de Common Language Runtime y la biblioteca de clases con las aplicaciones y el sistema en su conjunto..net Framework en contexto. 10

11 1. MANEJO DE ARCHIVOS Muchos de los programas que se crean con Visual Basic.NET necesitan interactuar con datos del exterior, procesarlos para luego mostrarlos en un formulario, guardarlos en archivos de texto, en una hoja de Excel, en un archivo de Word, enviarlos a la red o simplemente imprimirlos en papel, etc. Se usan archivos para conservar a largo plazo grandes cantidades de datos. Los datos guardados en archivos se conocen como datos persistentes. Los computadores guardan los archivos en dispositivos de almacenamiento secundario como discos magnéticos, ópticos y cintas magnéticas. Para procesar archivos en Visual Basic.NET se debe hacer uso del espacio de nombres 5 System.IO. El espacio de nombres System.IO contiene enumeraciones para la apertura de archivos, el acceso a los archivos, el uso compartido de archivos, además, de clases para las operaciones de rutas de acceso y la manipulación de flujos de datos. 1.1 Clase File Se puede utilizar la clase File para operaciones como copiar, mover, cambiar el nombre, crear, abrir, eliminar y anexar texto a archivos de texto plano. También con la clase File se puede obtener y definir atributos del archivo o información relacionada con la hora y fecha de creación, el acceso y la escritura en un archivo. Stream es la clase base de todas las secuencias de flujos de datos. Una secuencia es una abstracción de una secuencia de bytes, como un archivo, un dispositivo de entrada/salida, un canal de comunicación interprocesos o un socket TCP/IP. La clase Stream y sus clases derivadas proporcionan una visión genérica de diferentes tipos de entrada y salida, aislando al programador de los detalles específicos del sistema operativo y sus dispositivos subyacentes. Algunos métodos de la clase File son: Tabla 1.1 Métodos de la clase File. Método CreateText(ruta) Create(ruta) AppendText Delete Copy Exists Open Move GetCreateTime Replace Proceso Crea o abre un archivo para escribir texto. Crea un archivo en la ruta específicada Anexa texto a un archivo de texto existente. Elimina un archivo existente. Copia un archivo Determina si existe un archivo específico. Abre un archivo de texto existente Mueve un archivo a un sitio específico. Devuelve la hora y la fecha de la creación de un archivo. Reemplaza el contenido de un archivo en otro. 5 Se usan para agrupar clases y otros tipos de datos que estén relacionados entre sí. 11

12 1.1.1 Ejemplo clase File Hacer un nuevo proyecto llamado GuardarábrirConFile y realizar un programa que permita a un usuario guardar información en un archivo de texto plano, recuperar la información de éste, así como adicionarle información utilizando la clase File. NOTA: Si lo considera necesario puede revisar el Anexo A, donde se explica brevemente la creación, la interfaz de usuario, el establecimiento de propiedades a los controles, la escritura de código, la ejecución de un nuevo proyecto Windows Forms. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 2 TextBox, 3 Button. Figura 1.1 Interfaz de usuario (GuardarábrirConFile). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a las propiedades en los controles: Tabla 1.2 Propiedades de los controles del proyecto GuardarábrirConFile. Control Propiedad Valor Label1 Name etiquetaver Text Texto del archivo de escritura/lectura. Label2 Name etiquetaadicion Text Texto para adicionar TextBox1 Name texto Text En blanco Multiline true TextBox2 Name textoadicional Text En blanco Multiline true Button1 Name botonguardar 12

13 Text Guardar en archivo Button2 Name botonabrir Text Abrir archivo Button3 Name botonadicionar Text Adicionar texto Form1 Name formulario Text Guardar, leer y adicionar datos en archivo de texto. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.2 Interfaz de usuario, propiedades modificadas (GuardarábrirConFile). Escribir código a) Antes de la apertura de la clase se debe importar el espacio de nombres System.IO. Dé doble clic sobre el formulario y busque Public class formulario y antes de este código escriba imports System.IO. El código queda de la siguiente manera: imports System.IO Public Class formulario End Class Se importa el espacio de nombres System.IO para poder manipular los métodos de la clase File. b) En modo diseño del formulario, seleccione el objeto botonguardar, dé doble clic para abrir el editor de código botonguardar_click y escriba el siguiente código: Try Dim escribir As StreamWriter escribir = File.CreateText("c:\datosentexto.txt") escribir.write(texto.text) escribir.close() texto.text = "" 13

14 MsgBox("Texto Guardado", MsgBoxStyle.Information) Catch ex As Exception MsgBox("Error al guardar el archivo", MsgBoxStyle.Critical) End Try Se define un bloque Try-Catch para atrapar errores y las acciones a seguir. Aunque no es necesario, es una buena práctica cuando se están realizando operaciones de entrada/salida para evitar salidas anormales del sistema. En el bloque Try se establece el código que realiza una tarea específica y que en un caso dado puede generar un error; en el bloque Catch irá el código que realizará las acciones a seguir en caso de error. Dentro del bloque Try se crea un objeto llamado escribir de tipo StreamWriter (flujo de escritura). A dicho objeto se le asigna la creación del archivo de texto c:\datosentexto.txt por medio del método createtext de la clase File. Utilizando el método write y enviándole como parámetro el contenido del control llamado texto, se guarda la información en el archivo específicado. Por otro lado, se cierra el archivo utilizando el método close() y se limpia el objeto texto. Por último se muestra una caja de mensajes con el mensaje Texto Guardado. En el bloque Catch se captura en el objeto ex de tipo Exception el error que se pueda generar y se mostrará el mensaje Error al guardar el archivo. c) Seleccione el objeto botonabrir, dé doble clic para abrir el editor de código botonabrir_click y escriba el siguiente código: Try Dim leer As StreamReader leer = File.OpenText("c:\datosentexto.txt") texto.text = leer.readtoend leer.close() Catch ex As Exception MsgBox("Error al leer el archivo", MsgBoxStyle.Critical) End Try Dentro del bloque Try se crea un objeto llamado leer de tipo StreamReader (flujo de lectura). A dicho objeto se le establece la apertura del archivo de texto c:\datosentexto.txt por medio del método opentext de la clase File. Utilizando el método readtoend se lee el archivo de texto desde el inicio hasta el final y se le asigna su contenido al objeto texto. Por otro lado, se cierra el archivo utilizando el método close (). En el bloque Catch si se genera algún error se mostrará el mensaje Error al leer el archivo. d) Seleccione el objeto botonadicionar, dé doble clic para abrir el editor de código botonadicionar_click y escriba el siguiente código: Try texto.text = " " Dim adicionartexto As StreamWriter adicionartexto = File.AppendText("C:\datosentexto.txt") adicionartexto.writeline(textoadicional.text) adicionartexto.close() textoadicional.text = "" Catch ex As Exception MsgBox("Error al adicionar inf. al archivo", MsgBoxStyle.Critical) End Try 14

15 Dentro del bloque Try primero se coloca el objeto texto en blanco y luego se crea un objeto llamado adicionartexto de tipo StreamWriter (flujo de escritura). A dicho objeto se le asigna la propiedad de adición del texto al archivo c:\datosentexto.txt por medio del método AppendText de la clase File. Utilizando el método WriteLine y enviándole como parámetro el contenido del control llamado textoadicional, se adiciona la información al final del archivo específicado. Por otro lado se cierra el archivo utilizando el método close () y se limpia el objeto textoadicional. En el bloque Catch si se genera algún error, se mostrará el mensaje Error al adicionar inf. al archivo. Ejecutar el proyecto Para ejecutar el proyecto pulse la tecla F5 o el icono, se visualizará la figura 1.2. Al escribir creando un nuevo archivo para guardarlo con el botón Guardar en archivo en el objeto texto, dicha figura quedaría así: Figura 1.3 Ejecución aplicación AbrirGuardarConFile. Al pulsar el botón Guardar en Archivo, se creará en C:\ el archivo datosentexto.txt y el objeto texto se limpiará. Mostrándose la siguiente caja de texto: Figura 1.4 Mensaje de texto guardado en el archivo datosentexto.txt. 15

16 Pulse el botón Aceptar para cerrar dicha caja. Al pulsar el botón Leer Archivo, se visualizará nuevamente la figura 1.3. Si se adiciona el texto adicionando texto al archivo que previamente había guardado en el objeto textoadicional. El formulario deberá ser semejante a la siguiente figura: Figura 1.5 Formulario con el texto original y el texto adicional. Ahora pulse el botón Adicionar Texto, y nuevamente pulse el botón Leer Archivo para visualizar la siguiente figura: Figura 1.6 Lectura del archivo con el texto adicional. 16

17 1.2 Clases StreamWriter y StreamReader Las clases StreamWriter y StreamReader permiten las operaciones con archivos de texto plano. Para hacer uso de estas clases es necesario incluir el espacio de nombres System.IO. La Clase StreamReader (flujo de lectura) es una opción más para la manipulación de archivos de texto plano. Esta clase, entre otros, contiene el método ReadToEnd cuyo objetivo es leer un archivo desde una posición inicial hasta el final. La Clase StreamWriter (flujo de escritura) está diseñada para la salida de caracteres. Esta clase contiene entre otros el método Write para escribir información en el archivo Ejemplo clases StreamWriter y StreamReader Crear un proyecto llamado GuardarábrirArchivoTexto y hacer un programa que permita a un usuario guardar información en un archivo de texto plano, así como poder abrirlo y visualizar el contenido de este, utilizando las clases StreamWriter y StreamReader. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label, 1 TextBox, 2 Button. Figura 1.7 Interfaz de usuario (GuardarábrirArchivoTexto). Establecer las propiedades de los objetos de la interfaz de usuario Para el caso del ejemplo, establezca las siguientes modificaciones a los controles: 17

18 Tabla 1.3 Propiedades de los controles del proyecto GuardarábrirArchivoTexto. Control Propiedad Valor Label1 Name titulo Text Guardar y abrir un archivo de texto. Font Bold true TextBox1 Name texto Text En blanco Multiline true Button1 Name botonguardar Text Guardar archivo de texto Button2 Name botonabrir Text Abrir archivo de texto Form1 Name formulario Text Guardar y abrir archivos de texto. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.8 Interfaz de usuario modificada (GuardarábrirArchivoTexto). Escribir código a) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: Try Dim archivo As New System.IO.StreamWriter("./archivotexto.txt") archivo.write(texto.text) archivo.close() texto.text = "" Catch ex As Exception MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical) End Try Se define la variable archivo asignándosele un espacio de memoria de tipo System.IO.StreamWriter (), al cual se le envía como parámetro el nombre del archivo (archivotexto.txt). Dicho archivo estará ubicado en la carpeta 18

19 \bin\debug del proyecto. Utilizando el método Write se escribe el contenido del objeto texto en el archivo. Por otro lado se cierra el archivo utilizando el método close () y se limpia el objeto texto. b) Seleccione el objeto botonabrir, dé doble clic para abrir el editor de código y escriba el siguiente código: Try Dim miruta As String = ("./archivotexto.txt") Dim archivo As New System.IO.StreamReader(miruta) texto.text = archivo.readtoend archivo.close() Catch ex As Exception MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical) End Try Se definen las variables miruta de tipo String, la cual se inicializa con la ruta y el nombre del archivo archivotexto.txt y la variable archivo asignándosele un espacio de memoria de tipo System.IO.StreamWriter (). Utilizando el método ReadToEnd se lee el contenido del archivo y se le asigna al objeto texto. Por último se cierra el archivo. Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se visualizará la figura 1.8. Al adicionársele el texto El amor es el principio de todo, la razón de todo, el fin de todo en el objeto llamado texto, el formulario presentaría el siguiente aspecto: Figura 1.9 Ejecución aplicación GuardarábrirArchivoTexto. Al pulsar el botón con la etiqueta Guardar Archivo de texto, se creará un archivo de texto llamado archivotexto.txt y el objeto texto quedara en blanco. Al pulsar el botón Abrir Archivo de texto, se cargará en el objeto texto el contenido del archivo de texto. 19

20 1.3 Controles OpenFileDialog y SaveFileDialog Los controles OpenFileDialog y SaveFileDialog del cuadro de herramientas de Visual Basic.NET /2008, son cuadros de diálogo que permiten abrir y guardar archivos, respectivamente. El control OpenFileDialog representa un cuadro de diálogo para seleccionar un archivo que será abierto. El control SaveFileDialog representa un cuadro de diálogo para guardar un archivo nuevo o sobrescribir en un archivo existente. Estos controles obtienen su funcionamiento de la clase abstracta FileDialog. La clase FileDialog es un cuadro de diálogo modal; por tanto, al mostrarse, bloquea el resto de la aplicación hasta que el usuario haya elegido un archivo o cancelado la operación Ejemplo con los controles OpenFileDialog y SaveFileDialog Realizar un proyecto llamado GuardarábrirConControles y diseñar un programa que permita a un usuario guardar información en un archivo de texto plano, así como poder abrirlo y visualizar el contenido de éste, utilizando los controles OpenFileDialog y SaveFileDialog. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 1 TextBox, 2 Button, 1 OpenFileDialog y 1 SaveFileDialog. Figura 1.10 Interfaz de usuario (GuardarábrirArchivoConControles) Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 20

21 Tabla 1.4 Propiedades de controles proyecto GuardarábrirArchivoConControles. Control Propiedad Valor Label1 Name titulo1 Text Guardar y abrir archivo de texto con los controles. Font Bold true Label2 Name titulo2 Text SaveFileDialog y OpenFileDialog. Font Bold true TextBox1 Name texto Text En blanco Multiline true SavefileDialog1 Name guardarárchivo OpenFileDialog1 Name abrirárchivo Button1 Name botonguardar Text Guardar archivo de texto Button2 Name botonabrir Text Abrir archivo de texto Form1 Name formulario Text Controles SaveFileDialog y OpenFileDialog. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.11 Interfaz de usuario modificada (GuardarábrirArchivoconControles). Escribir código a) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: 21

22 guardarárchivo.filter = "Archivos de texto (*.txt) *.txt" guardarárchivo.showdialog() If guardarárchivo.filename <> "" Then Try Dim guardar As IO.StreamWriter guardar = New IO.StreamWriter(guardarárchivo.FileName) guardar.write(texto.text) guardar.close() texto.text = "" Catch ex As Exception MsgBox("No se pudo guardar el archivo") End Try Else MsgBox("Archivo no contiene información") End If En el anterior código se utiliza la propiedad Filter del control guardarárchivo para que cuando se abra el cuadro de diálogo solamente se visualicen los archivos con extensión.txt. El método ShowDialog permite abrir el cuadro de diálogo. Utilizando la estructura if se pregunta si el nombre de archivo es diferente de vacío utilizando la propiedad FileName. Si se cumple la condición se crea un objeto llamado guardar de tipo IO.StreamWriter al cual se le asigna espacio de memoria enviándole como parámetro el nombre del archivo por intermedio de la propiedad FileName del control guardarárchivo. Por otro lado, se utiliza el método Write para guardar el contenido del objeto texto; luego se cierra el objeto con el método close () y por último se limpia el objeto texto. Si el nombre del archivo esté en blanco se mostrará un mensaje informando que el archivo esta vacío o no contiene información. b) Seleccione el objeto botonabrir, dé doble clic para abrir el editor de código y escriba el siguiente código: abrirárchivo.filter = "Archivos de texto (*.txt) *.txt" abrirárchivo.showdialog() If abrirárchivo.filename <> "" Then Try Dim verarchivo As New IO.StreamReader(abrirárchivo.FileName) texto.text = verarchivo.readtoend verarchivo.close() Catch ex As Exception MsgBox("No se pudo abrir el archivo") End Try Else MsgBox("Archivo no contiene información") End If Utilizando la estructura if se pregunta si el nombre de archivo es diferente de vacío. Si se cumple la condición se crea un objeto llamado verarchivo de tipo IO.StreamReader al cual se le asigna espacio de memoria enviándole como parámetro el nombre del archivo por intermedio de la propiedad FileName del control abrirárchivo. Por otro lado, se utiliza el método ReadToEnd para leer el archivo y asignarle el contenido al objeto texto, luego se cierra el objeto con el método close (). Si, por el contrario, no contiene información, se mostrará un mensaje informando que el archivo esta vació. 22

23 Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET se visualizará la figura Al pulsar el botón Abrir Archivo de Texto se visualizará el cuadro de diálogo de Abrir. Se debe seleccionar un archivo de texto y pulsar el botón del cuadro de diálogo Abrir. Figura 1.12 Cuadro de Diálogo control abrirárchivo. El formulario presentaría un aspecto similar: Figura 1.13 Formulario con archivo de texto abierto. Al pulsar el botón Guardar Archivo de Texto se visualizará el cuadro de diálogo de Guardar como, donde se deberá digitar el nombre del archivo a guardar y pulsar el botón del cuadro de diálogo Guardar. Si el archivo ya existe, preguntará si desea sobrescribirlo. 23

24 Figura 1.14 Cuadro de diálogo control guardar archivo. 1.4 Archivos secuenciales Otra forma de guardar o leer información de un archivo de texto plano es utilizar archivos secuenciales. Los archivos secuenciales se denominan de esta manera porque para guardar y leer la información se realiza desde el principio hasta el final del archivo, es decir, para acceder a un dato que se encuentra en la mitad del archivo es necesario empezar a recorrerlo desde el principio hasta encontrar el dato, o sea en forma secuencial. El acceso secuencial funciona mejor cuando se desea procesar archivos únicamente de texto y no archivos en los que los datos se dividen en una serie de registros. Cuando se abre un archivo para acceso secuencial, se debe específicar si se va a escribir en el archivo (Input), si se va a leer el archivo (Output) o si se va a adicionar información al archivo (Append). Para accesar a un archivo secuencial se utiliza la función FileOpen. Cuando se abre un archivo secuencial para Input, el archivo ya debe existir; de lo contrario, se producirá un error. No obstante, cuando se intenta abrir un archivo que no existe para Output o Append, la instrucción FileOpen primero crea el archivo y a continuación lo abre. Una vez que se abre un archivo para una operación Input, Output o Append, debe cerrarse con la instrucción FileClose antes de volver a abrirlo para realizar otro tipo de operación Ejemplo de archivos secuenciales Crear un proyecto llamado ArchivosSecuenciales y realizar un programa que permita a un usuario guardar información en un archivo de texto plano, leer la información de éste, así como adicionarle más información a dicho archivo utilizando archivos secuenciales. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 4 Label, 3 TextBox, 3 Button. 24

25 Figura 1.15 Interfaz de usuario (ArchivosSecuenciales). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 1.5 Propiedades de controles proyecto ArchivosSecuenciales. Control Propiedad Valor Label1 Name titulo Text Guardar/adicionar inf. archivo secuencial. Label2 Name etiquetanombre Text Digite nombres: Label3 Name etiquetaapellido Text Digite apellidos: Label4 Name mostrar Text Lectura del archivo: TextBox1 Name textonombre Text En blanco TextBox2 Name textoapellido Text En blanco TextBox3 Name textolectura Text En blanco Multiline true Button1 Name botonguardar Text Guardar archivo Button2 Name botonadicionar Text Adicionar texto Button3 Name botonabrir Text Leer archivo Form1 Name formulario Text Guardar, adicionar y leer archivo secuencial. 25

26 La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.16 Interfaz de usuario modificada (ArchivosSecuenciales). Escribir código a) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: Try FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Output) PrintLine(1, textonombre.text, textoapellido.text) textonombre.text = "" textoapellido.text = "" FileClose(1) Catch ex As Exception MsgBox("No se pudo guardar el archivo") End Try En el anterior código se utiliza la función FileOpen con los parámetros: 1, un número de archivo libre, c:\datossecuenciales.txt, nombre del archivo, OpenMode.OutPut, modo de apertura del archivo (salida). Con el método PrintLine se imprime en una línea del archivo el contenido de los objetos textonombre y textoapellido, luego se limpian dichos objetos y por último se cierra el archivo. b) Seleccione el objeto botonadicionar, dé doble clic para abrir el editor de código y escriba el siguiente código: Try FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Append) PrintLine(1, textonombre.text, textoapellido.text) textonombre.text = "" textoapellido.text = "" FileClose(1) Catch ex As Exception MsgBox("No se pudo adicionar el archivo") End Try 26

27 Lo único que cambia con respecto a la opción de Guardar archivo es el modo de apertura del archivo (OpenMode.Append), se cambia OutPut por Append (adicionar). Este modo de apertura permite guardar más información al final del archivo específicado. c) Seleccione el objeto botonabrir, de doble clic para abrir el editor de código y escriba el siguiente código: Try FileOpen(1, "c:\datossecuenciales.txt", OpenMode.Input) Dim linea As String Do Until EOF(1) linea = LineInput(1) textolectura.text = textolectura.text & linea & vbcrlf Loop FileClose(1) Catch ex As Exception MsgBox("No se pudo abrir el archivo") End Try Se utiliza la función FileOpen con los parámetros: 1, un número de archivo libre, c:\datossecuenciales.txt, nombre del archivo, OpenMode.Input modo de apertura del archivo (entrada). Se define una variable llamada linea de tipo String, la cual servirá para guardar cada línea del archivo. Por otro lado se crea un ciclo (Do Until Loop) que recorrerá el archivo hasta el final (EOF) línea por línea y utilizando el método LineInput () se le asignará la información leida al objeto textolectura, por último se cierra el archivo. Ejecutar el proyecto Al ejecutarse el proyecto se visualizará la figura Al escribir un nombre y un apellido en las respectivas cajas de texto y pulsar el botón Guardar archivo, se guardará dicha información en el archivo c:\datossecuenciales.txt. El formulario con la información quedaría de la siguiente forma: Figura 1.17 Formulario con información de nombre y apellido. 27

28 Si se desea adicionar más información al archivo de texto, escriba nuevamente los nombres y apellidos correspondientes y pulse el botón Adicionar texto, se podría obtener la siguiente pantalla: Figura 1.18 Formulario con información para adicionar. Al pulsar el botón Leer Archivo se leerá el contenido del archivo de texto, como se muestra en la siguiente figura. Figura 1.19 Formulario con la información del archivo. 28

29 1.5 Archivos binarios También es posible guardar o leer información desde un archivo con acceso binario. Con los archivos de acceso binario se puede almacenar información ya sea numérica, de cadena o de ambas. Este tipo de archivo no requiere campos de longitud fija. No obstante, es necesario conocer cómo se escribieron exactamente los datos en el archivo para poder recuperarlos correctamente. Por ejemplo, si almacena una serie de productos y unas cantidades, debe tener en cuenta que el primer campo (producto) es texto y el segundo (cantidades) es numérico. Para abrir un archivo para acceso binario, se recurre a OpenMode.Binary con la instrucción FileOpen. Una vez abierto, para escribir en el archivo se utiliza las funciones FilePut y FilePutObject. Para leer un archivo se manejan las funciones FileGet y FileGetObject Ejemplo de archivos binarios Realizar un proyecto llamado ArchivosBinarios y hacer un programa que permita a un usuario guardar información en un archivo de texto plano, leer la información de este, utilizando archivos binarios. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 3 Label, 3 TextBox, 2 Button. Figura 1.20 Interfaz de usuario (ArchivosBinarios). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 29

30 Tabla 1.6 Propiedades de controles proyecto ArchivosBinarios. Control Propiedad Valor Label1 Name titulo Text Guardar/adicionar inf. archivo binario. Label2 Name etiquetaproducto Text Digite producto: Label3 Name etiquetacantidad Text Digite cantidad: TextBox1 Name textoproducto Text En blanco TextBox2 Name textocantidad Text En blanco TextBox3 Name textolectura Text En blanco Multiline true Button1 Name botonguardar Text Guardar archivo Button2 Name botonabrir Text Leer archivo Form1 Name formulario Text Guardar/leer archivo binario. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.21 Interfaz de usuario modificada (ArchivosBinarios). Escribir código a) Definir una estructura llamada Articulo después de Public class formulario: Structure Articulo <VBFixedString(30)> Dim producto As String <VBFixedString(10)> Dim cantidad As String End Structure 30

31 Se define una estructura (Structure) llamada Articulo que contendrá dos tipos de datos String producto y cantidad. Se utiliza el atributo VBFixedString () para definir la longitud máxima de los datos. b) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim nombrearchivo As String Dim numeroarchivo As Short Dim inventario As Articulo inventario.producto = textoproducto.text inventario.cantidad = textocantidad.text numeroarchivo = FreeFile() nombrearchivo = "c:\datosaleatorios.txt" FileOpen(numeroarchivo, nombrearchivo, OpenMode.Binary) FilePut(numeroarchivo, inventario) FileClose(numeroarchivo) Se crean las variables nombrearchivo de tipo String, numeroarchivo de tipo Short e inventario de tipo Articulo. Se le asigna la información capturada en los objetos textoproducto y textocantidad a los datos de la estructura Articulo utilizando la instancia inventario. La variable numeroarchivo es inicializada con un número de archivo libre utilizando la función FreeFile (), como también se le asigna a la variable nombrearchivo la ruta y el nombre del archivo donde se guardará la información. Se abre el archivo en modo binario utilizando la función FileOpen que recibe como parámetros: un número de archivo libre (numeroarchivo), el nombre del archivo (nombrearchivo), la apertura del archivo binario (OpenMode.Binary). Con FilePut se escriben los valores que contiene la estructura inventario en el archivo binario y por último se cierra el archivo. c) Seleccione el objeto botonabrir, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim nombrearchivo As String Dim numeroarchivo As Short numeroarchivo = FreeFile() nombrearchivo = "c:\datosaleatorios.txt" FileOpen(numeroarchivo, nombrearchivo, OpenMode.Binary) textolectura.text = New String(" "c, 50) FileGet(numeroarchivo, textolectura.text) FileClose(numeroarchivo) Como se puede apreciar, las primeras cinco líneas son exactamente iguales a la opción de guardar. Se le asigna al objeto textolectura en su propiedad text un espacio de memoria de tipo char ( c), con un espacio para 50 caracteres. Se utiliza la función FileGet para leer el contenido del archivo, éste recibe como parámetros: el numero del archivo (numeroarchivo) y el objeto textolectura, el cual contendrá el contenido del archivo de texto. Por último se cierra el archivo. 31

32 Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se visualizará la figura Al escribir un producto y una cantidad en las respectivas cajas de texto y pulsar el botón Guardar Archivo, se guardará dicha información en el archivo c:\datosaleatorios.txt. Al pulsar el botón Leer Archivo, el formulario con la información leída quedaría de la siguiente forma: Figura 1.22 Formulario con información de un producto y una cantidad. 1.6 Importar y exportar datos de una hoja de Excel Hasta el momento se ha trabajado con archivos de texto plano en donde se ha podido guardar, adicionar y recuperar información. Con Visual Basic.NET también es posible manipular archivos con otro tipo de formato; por eso en este aparte se exportará datos desde un proyecto de Visual Basic.NET a un archivo de Excel y se importarán datos de un archivo de Excel a un proyecto de Visual Basic.NET Ejemplo importar y exportar datos de Excel Dentro de un proyecto llamado ImportarExportarExcel, hacer un programa que permita a un usuario exportar y/o importar datos de una hoja de Excel. Cuando se importe de Excel los datos se deberán mostrar en un control DataGridView de Visual Basic.NET, así como se deberá solicitar el rango de datos a importar. Al exportar se deberán enviar todos los datos que contenga el control DataGridView a un archivo de Excel. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label, 1 TextBox, 2 Button y 1 DataGridView. 32

33 Figura 1.23 Interfaz de usuario (ImportarExportarExcel). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 1.7 Propiedades de controles proyecto ImportarExportarExcel. Control Propiedad Valor Label1 Name texto Text Rango a importar de Excel Font Bold true TextBox1 Name rango Text A1:D10 DataGridView1 Name tabla Button1 Name botonimportar Text Importar de Excel Button2 Name botonexportar Text Exportar a Excel Form1 Name formulario Text Importar y exportar de Excel. La interfaz de usuario queda como se muestra en la siguiente figura: 33

34 Figura 1.24 Interfaz de usuario modificada (ImportarExportarExcel). Escribir código Antes de escribir código, se deberá crear un archivo en Excel llamado importardatos.xls y en la hoja uno (1) escribir información en el rango A1:D10, como se muestra en la siguiente figura: Figura 1.25 Hoja de Excel con datos. a) Seleccione el objeto botonimportar, dé doble clic para abrir el editor de código y escriba el siguiente código: importar_excel("c:\importardatos.xls", "hoja1", rango.text, tabla) Se llama al procedimiento importar_excel, el cual tiene como 34

35 parámetros: la ruta y el nombre del archivo de Excel, el nombre de la hoja donde se encuentran los datos en Excel, el rango de datos a importar y el nombre del control DataGridView (tabla). b) Dé doble clic sobre el formulario y cree el siguiente procedimiento Sub: Private Sub importar_excel(byval archivoexcel As String, ByVal nombrehoja As String, ByVal rangohoja As String, ByVal tabla As DataGridView) Try If System.IO.File.Exists(archivoexcel) Then Dim conjuntodedatos As System.Data.DataSet Dim adaptadordedatos As System.Data.OleDb.OleDbDataAdapter Dim conexion As String = "provider=microsoft.jet.oledb.4.0; " & "data Source =" & archivoexcel & "; Extended Properties=Excel 8.0;" Dim conectordedatos As System.Data.OleDb.OleDbConnection conectordedatos = New System.Data.OleDb.OleDbConnection(conexion) Dim selecciondedatos As String = "select * from " & "[" & nombrehoja & "$" & rangohoja & "]" adaptadordedatos = New System.Data.OleDb.OleDbDataAdapter (selecciondedatos,conectordedatos) conjuntodedatos = New System.Data.DataSet adaptadordedatos.fill(conjuntodedatos) conectordedatos.close() With tabla.datasource = conjuntodedatos.datamember = conjuntodedatos.tables(0).tablename End With conjuntodedatos = Nothing conexion = Nothing adaptadordedatos = Nothing conectordedatos = Nothing Else MsgBox("No se ha encontrado el archivo: " & archivoexcel, MsgBoxStyle.Exclamation) End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) End Try End Sub Se crea el procedimiento importar_excel, el cual recibe como parámetros: las variables archivoexcel, nombrehoja, rangohoja de tipo String y tabla de tipo DataGridView. La variable archivoexcel contendrá la ruta y el nombre del archivo de Excel, nombrehoja almacenará el nombre de la hoja de Excel, rangohoja obtendrá el rango a importar y tabla visualizará los datos importados. Utilizando la estructura if y con el método Exists se determina si el archivo existe. Si es verdadero, se crean las variables: conjuntodedatos de tipo DataSet para guardar el conjunto de datos a importar; adaptadordedatos de tipo OleDbDataAdapter, con la cual se obtiene el adaptador de datos OLEDB para recuperar los datos; conexion de tipo String que contendrá la cadena de conexión a Excel; conectordedatos de tipo OleDbConnection que representa una conexión única a un origen de datos; en este caso, se le asigna espacio de memoria y se le envía como parámetro la cadena de conexión; selecciondedatos de tipo String a la cual se le asigna la sentencia de selección SQL (select) que trae los datos de la hoja1(nombrehoja) en el rango específicado (rangohoja). 35

36 Al adaptador de datos adaptadordedatos se le asigna espacio de memoria, enviándole como parámetro los datos seleccionados (selecciondedatos) y la cadena de conexión (conexiondedatos), también se asigna espacio de memoria de tipo DataSet al objeto conjuntodedatos y el adaptador de datos (adaptadordedatos) se rellena (fill) con el conjunto de datos. Por otro lado se cierra la conexión de los datos con close (). Además se asigna a la propiedad DataSource del objeto tabla el conjunto de datos y al adaptador de datos se le asigna la lista de datos que contiene el archivo de Excel, por último se liberan todos los objetos utilizando la palabra clave Nothing (liberar). Si la condición es falsa se mostrará un mensaje donde se informa que no se pudo encontrar el archivo de Excel. c) Seleccione el objeto botonexportar, dé doble clic para abrir el editor de código y escriba el siguiente código: exportar_excel(tabla, tabla.rows.count) Se llama al procedimiento exportar_excel, el cual tiene como parámetros: el objeto DataGridView llamado tabla y la cantidad de filas que contiene dicho objeto utilizando la función Count de la propiedad Rows. d) Dé doble clic sobre el formulario y cree el siguiente procedimiento Sub: Private Sub exportar_excel(byval tabla As DataGridView, ByVal nrofilas As Long) Dim archivo_excel As Object Dim libro_excel As Object Dim hoja_excel As Object Dim i As Integer Dim j As Integer Dim icolumnas As Integer If nrofilas = 0 Then MsgBox("No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ") : Exit Sub Else archivo_excel = CreateObject("Excel.Application") libro_excel = archivo_excel.workbooks.open("c:\exportardatos.xls") hoja_excel = archivo_excel.activesheet icolumnas = 0 For i = 0 To tabla.columns.count - 1 If tabla.columnheadersvisible Then icolumnas = icolumnas + 1 hoja_excel.cells(1, icolumnas) = tabla.columns(i).headertext For j = 0 To nrofilas - 1 hoja_excel.cells(j + 2, icolumnas) = tabla.item(i, j).value Next End If Next archivo_excel.visible = True End If hoja_excel = Nothing libro_excel = Nothing archivo_excel = Nothing End sub Se crea el procedimiento exportar_excel, el cual recibe como parámetros: las variables tabla de tipo DataGridView y nrofilas de tipo long. 36

37 El objeto tabla contendrá los datos a exportar y nro_filas el número de filas del objeto tabla. Se definen los objetos archivo_excel, hoja_excel, libro_excel de tipo Object y se crean las variables i, j, icolumnas de tipo Integer. Utilizando la estructura if se pregunta si nro_filas es igual a cero (0), si es verdadero se imprimirá el mensaje de la no existencia de datos en el archivo Excel y se saldrá del procedimiento por intermedio de la palabra clave exit. En caso contrario se crea un objeto (CreateObject) que inicializa una aplicación Excel y es asignado al objeto archivo_excel, al objeto libro_excel se le asigna la ruta y el nombre del archivo de Excel que se va a abrir utilizando el método Open de WorkBooks, como también se asigna la hoja activa (ActiveSheet) del archivo de Excel a hoja_excel. Se inicializa la variable icolumnas en cero y ejecutan dos ciclos for. En el ciclo externo se recorre la cantidad de columnas existente en el objeto DataGridView (tabla.columns.count - 1). Si el nombre de la columna es visible se incrementa la variable icolumna en uno (1) y se asigna a la primera celda en la posición del valor de la variable icolumna el nombre de la columna del objeto DataGridView utilizando el método HeaderText, en el ciclo más interno se recorre cada una de las filas del objeto DataGridView y se coloca en la celda (j, i) el valor que tiene el objeto tabla en la posición (i, j). Por otro lado, se hace visible (se abre) el archivo de Excel. Por último se liberan todos los objetos utilizando la palabra clave Nothing (liberar). Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo, se visualizará la figura Al escribir el rango A1:D10 y pulsar el botón Importar de Excel, se visualizará la siguiente figura: Figura 1.26 Formulario con datos importados de Excel. Si se pulsa el boton Exportar a Excel, se exportarán todos los datos del objeto tabla y se abrirá el archivo de Excel exportardatos.xls en c:\. Dicho archivo debe existir para que no ocurra ningún error. 37

38 Figura 1.27 Hoja de Excel con datos exportados desde VB.NET. 1.7 Exportar datos a Word Con Visual Basic.NET también es posible exportar los datos que existen en un control de Visual Basic.NET a un archivo de Word. Para esto es necesario agregar una referencia.net llamada Microsoft.Office.Interop.Word en el proyecto que se está trabajando Ejemplo de exportar datos de VB.NET a Word Crear un proyecto llamado ExportarWord y realizar un programa que permita a un usuario exportar los datos de un control DataGridView de Visual Basic.NET a una tabla en un archivo de Microsoft Word. Agregar referencia Desde el submenú proyecto seleccione la opción Agregar referencia y busque el nombre del componente Microsoft.Office.Interop.Word, se debería visualizar la siguiente pantalla: Figura 1.28 Agregar referencia.net. 38

39 Al estar seleccionado dicho componente, pulse el botón Aceptar para incorporarlo al proyecto. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Button y 1 DataGridView. Figura 1.29 Interfaz de usuario (ExportarWord). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 1.8 Propiedades de controles proyecto ExportarWord. Control Propiedad Valor DataGridView1 Name tabla Button1 Name botonexportar Text Exportar a Word Form1 Name formulario Text Exportar datos a Word. La interfaz de usuario queda como se muestra en la siguiente figura: 39

40 Figura 1.30 Interfaz de usuario modificada (ExportarWord). Escribir código a) Seleccione el objeto botonexportar, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim archivo_word As Microsoft.Office.Interop.Word.Application Dim Documento As Microsoft.Office.Interop.Word.Document Dim Parrafo As Microsoft.Office.Interop.Word.Table Dim filas As Integer Dim columnas As Integer Dim dato As Object archivo_word = New Microsoft.Office.Interop.Word.Application archivo_word.visible = True Documento = archivo_word.documents.add Parrafo = Documento.Tables.Add(Documento.Range(0, 0), tabla.rowcount + 1, tabla.columns.count) For columnas = 0 To tabla.columns.count - 1 arrafo.cell(1, columnas + 1).Range.InsertAfter(tabla.Columns(columnas).HeaderText) For filas = 0 To tabla.rowcount - 1 dato = tabla.item(columnas, filas).value Parrafo.Cell(filas + 2, columnas + 1).Range.InsertAfter(dato) Next Next archivo_word = Nothing Documento = Nothing Parrafo = Nothing Se definen los objetos archivo_word de tipo Aplicación de Word (Word.application), Documento de tipo documento de Word (Word.Document), Parrafo de tipo Tabla de Word (Word.Table), como también se crean las variables filas y columnas de tipo Integer y dato de tipo Object. Se asigna espacio de memoria al objeto archivo_word de tipo Word.Application, se hace visible un archivo de Word y se añade un nuevo documento de Word con Word.Documents.Add. Al objeto Parrafo se le asigna una tabla desde un rango (0,0, total_filas, total_columnas). Se ejecutan dos ciclos For. En el ciclo externo se recorre la cantidad de columnas existentes en el objeto DataGridView (tabla.columns.count - 1) y se asigna a la primera fila en la posición del valor de la variable columnas+1 el nombre de la columna del objeto DataGridView utilizando el método HeaderText; en el ciclo más 40

41 interno se recorre cada una de las filas del objeto DataGridView y se van asignando a la variable dato el valor de cada celda(columnas, filas) del objeto tabla y se coloca en la celda (j, i) de la tabla de Word el valor que tiene el objeto dato. Por último se liberan todos los objetos utilizando la palabra clave Nothing (liberar). b) Dé doble clic sobre el formulario para abrir el editor del procedimiento formulario_load y escriba el siguiente código: With tabla.columns.add("código", "Código").Columns.Add("Producto", "Producto").Columns.Add("Precio", "Precio").Columns.Add("Inventario", "Inventario actual").columns.add("proveedor", "Nombre Proveedor").RowCount = 10 For i As Integer = 0 To.RowCount - 1.Item(0, i).value = i.tostring.item(1, i).value = "Producto " & i.tostring.item(2, i).value = FormatNumber(225 + i).item(3, i).value = CInt(Rnd() * 100).Item(4, i).value = "Proveedor: " & i.tostring Next End With Con el anterior código se llena el objeto tabla con datos. Se le adicionan cinco nombres, uno en cada columna con el método Add de la propiedad Columns y se asignan como valor inicial a la propiedad RowCount 10 filas. Con un ciclo For que se ejecutará desde una posición i igual a cero (0) hasta el número de filas -1 del objeto tabla y por cada fila se adicionarán cinco ítems. En la primera columna el valor de i, en la segunda un texto Producto unido con el valor de la variable i, en la tercera el valor 225 sumándole el valor de i, en la cuarta un número aleatorio entre 0 y 100 y por último un texto Proveedor unido al valor de i. Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se visualizará el formulario con los datos que se asignaron en el procedimiento formulario_load, se visualizará la siguiente figura: Figura 1.31 Formulario con datos cargados desde el load. 41

42 Al pulsar el botón Exportar a Word, se abrirá un nuevo documento de Word y se visualizaría lo siguiente: Figura 1.32 Ventana de Word con los datos exportados de VB.NET. En este momento puede seleccionar todos los datos y pulsar el icono bordes de Word y escoger la opción Todos los bordes para que el documento presente el siguiente aspecto: Figura 1.33 Tabla de Word con datos y bordes. 42

43 1.8 Ejercicios de archivos 1. Realizar un programa que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando la clase File. 2. Hacer un programa que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando las clases StreamWriter y StreamReader. 3. Diseñar un programa que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando archivos secuenciales. 4. Escribir un programa que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando archivos binarios. 5. Crear un programa que permita importar todos los datos que existan en un archivo de Excel y visualizarlos en un ListView. 6. Elaborar un programa que permita importar todos los datos que existan en un archivo de Excel y visualizarlos en un ListBox. 7. Realizar un programa que permita exportar un rango de datos a una tabla de Word. 8. Hacer un programa que permita importar los datos de un archivo de texto a un DataGridView. 9. Crear un programa que permita exportar los datos de un control ListView a Excel. 10. Escribir un programa que permita exportar los datos de un ListView a Word. 43

44 2. BASES DE DATOS Una base de datos es un sistema formado por un conjunto de datos relacionados y almacenados en discos que permiten el acceso directo a ellos y una serie de programas que manipulan ese conjunto de datos (SGBD sistema de gestión de bases de datos). Cada base de datos se compone de una o más tablas que guardan los datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que se quiere guardar en la tabla, cada fila de la tabla conforma un registro. Un registro contiene campos que pueden ser del mismo tipo de dato o de diferentes tipos de datos. Entre las principales características de las bases de datos se pueden mencionar: Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditoría. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar. 2.1 Tipos de bases de datos Los tipos de bases datos más comunes son las relacionales y en el mercado existen varios sistemas de administración de bases de datos de ese tipo, algunos son: SQL Server, Access, Oracle, MySQL, PostgresSQL, etc Relacionales Son las que más se utilizan. Las bases de datos relacionales son un conjunto de tablas relacionadas entre sí, cada tabla está definida por una serie de campos. Los campos forman las columnas de las tablas; estos definen el tipo y la variedad de los datos. Las filas de datos se denominan registros (tuplas), cada tipo definido en un registro se le denomina atributo. Las tablas pertenecientes a una base de datos pueden relacionarse entre sí utilizando campos clave comunes entre las tablas Orientada a objetos El esquema de una base de datos por objetos está representado por un conjunto de clases que definen las características y el comportamiento de los objetos que poblarán la base de datos. Con una base de datos orientada a objetos, los objetos memorizados en la base de datos contienen tanto los datos como las operaciones posibles con tales datos. En cierto sentido, se podrá pensar en los objetos como en datos a los que se les ha puesto una inyección de inteligencia que les permite saber cómo comportarse, sin tener que apoyarse en aplicaciones externas. 2.2 Lenguaje de Consulta Estructurado (S.Q.L.) Es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la 44

45 estructura de los mismos. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos Comandos Existen dos tipos de comandos SQL: DLL que permiten crear y definir nuevas bases de datos, tablas, campos e índices. DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Tabla 2.1 Comandos DLL y DML de SQL. Comandos DLL Comando CREATE DROP ALTER SELECT INSERT UPDATE DELETE Descripción Utilizado para crear nuevas bases de datos, tablas, campos e índices. Empleado para eliminar bases de datos, tablas e índices. Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DML Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. Utilizado para cargar lotes de datos en la base de datos en una única operación. Utilizado para modificar los valores de los campos y registros específicados. Utilizado para eliminar registros de una tabla de una base de datos Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que se desea seleccionar o manipular. Tabla 2.2 Cláusulas SQL. Cláusula FROM WHERE GROUP BY HAVING ORDER BY Descripción Para específicar la tabla de la cual se van a seleccionar los registros. Para específicar las condiciones que deben reunir los registros a seleccionar. Utilizada para separar los registros seleccionados en grupos específicos. Utilizada para expresar la condición que debe satisfacer cada grupo. Para ordenar los registros seleccionados. 45

46 2.2.3 Operadores lógicos Los operadores lógicos comprueban la veracidad de alguna condición. Éstos devuelven el tipo de datos Boolean con el valor TRUE o FALSE. Tabla 2.3 Operadores lógicos SQL. Operador AND OR NOT BETWEEN LIKE IN ALL Uso Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negación lógica. Devuelve el valor contrario de la expresión. Utilizado para específicar un intervalo de valores. Utilizado en la comparación de un patrón. Utilizado para específicar registros de una base de datos. Devuelve True si el conjunto de comparaciones en verdad Operadores de Comparación Los operadores de comparación comprueban si dos expresiones son iguales, devolviendo un valor booleano True o False. Se pueden utilizar en todas las expresiones excepto en las de los tipos de datos text, ntext o image. Tabla 2.4 Operadores de comparación SQL. Operador Uso < Menor que > Mayor que <> Distinto de <= Menor o igual que >= Mayor o igual que = Igual que Funciones de agregado Las funciones de agregado realizan un cálculo sobre un conjunto de valores y devuelven un solo valor. Si exceptuamos la función COUNT, todas las funciones de agregado ignoran los valores NULL. Las funciones de agregado se suelen utilizar con la cláusula GROUP BY de la instrucción SELECT. 46

47 Tabla 2.5 Funciones de agregado SQL. Función AVG COUNT SUM MAX MIN Descripción Utilizada para calcular el promedio de los valores de un campo determinado. Utilizada para devolver el número de registros de la selección. Utilizada para devolver la suma de todos los valores de un campo determinado. Utilizada para devolver el valor más alto de un campo específicado. Utilizada para devolver el valor más bajo de un campo específicado. 2.3 Sentencias Básicas SQL Se describirá muy brevemente algunas de las sentencias SQL para la manipulación de los datos de una tabla. Para trabajar las sentencias a continuación, se supondrá que se tiene creada una tabla llamada usuarios con la siguiente estructura: Tabla 2.6 Estructura de los campos de la tabla USUARIOS. Y que contiene la siguiente información: Campo Tipo de Dato Longitud identificacion varchar 15 nombres varchar 20 apellidos varchar 20 dirección varchar 25 teléfono varchar 20 ciudad_nac varchar 20 fecha_nac date Tabla 2.7 Información de la tabla usuarios. Identificación Nombres Apellidos Dirección Teléfono Ciudad_nac Fecha_nac 100 Carlos Romero Cra 7 # Bogota 01/02/ María Castro Calle 25 # Cali 15/03/ José Peláez Av. 35 # Medellín 20/05/ Cristian Vanegas Cra 7 # Manizales 31/08/ Rosa Cetina Calle 17 # Buga 15/12/ Andrés Vanegas Tranvs 48 # Bogotá 10/04/ Angélica Morales Cra 68 # Medellín 20/06/ Johana Duarte Cra 2 # Bogotá 12/06/ Mario Vargas Calle 1 # Medellín 28/08/ CREATE DATABASE El comando CREATE DATABASE permite crear una base de datos. Su formato es: CREATE DATABASE <nombre_base_de_datos) 47

48 2.3.2 DROP DATABASE El comando DROP DATABASE permite eliminar una base de datos que previamente se había creado. Su formato es: CREATE TABLE DROP DATABASE <nombre_base_de_datos_a_eliminar> El comando CREATE TABLE permite crear una tabla. Con este comando se específica el nombre de la tabla, las columnas y sus tipos de datos, las claves primarias y si es necesario, la clave externa. Su formato es: CREATE TABLE nombre_tabla (campo1 tipodato DEFAULT,., campo2 tipodato, DEFAULT) La cláusula DEFAULT indica la característica de cada columna: NOT NULL (no permite valores nulos), UNIQUE (dos filas no pueden tener un mismo valor en la misma columna), PRIMARY KEY (define una columna como clave principal) DROP TABLE El comando DROP TABLE permite eliminar una tabla que previamente se había creado. Su formato es: INSERT DROP TABLE nombre_tabla La sentencia SQL de inserción de datos INSERT permite insertar información en una tabla. Su formato es: INSERT INTO nombre_tabla (campo1, campo2,.) VALUES (valor1, valor2,.) Para insertar un nuevo registro a la tabla usuarios se debería realizar la siguiente sentencia: INSERT INTO usuarios (identificación, nombres, apellidos, dirección, teléfono, ciudad_nac, fecha_nac) VALUES ( 160, Carmen, Bolívar, Calle 100 # , , Barranquilla, 18/11/1692 ) ALTER La sentencia SQL ALTER permite insertar un nuevo campo en una tabla. Su formato es: ALTER TABLE nombre_tabla ADD nombre_campo tipo_de_dato () Para insertar un nuevo campo a la tabla usuarios llamado credito de tipo numérico se debería realizar la siguiente sentencia: ALTER TABLE usuarios ADD credito numeric (18,0) 48

49 2.3.7 SELECT La sentencia SQL que más se utiliza es la instrucción de selección SELECT. Como su nombre lo indica, es una instrucción que permite seleccionar información de una tabla. Su formato es: SELECT campos_tabla FROM nombre_tabla A continuación se realizan algunos ejemplos: a) Para visualizar toda la información que contiene la tabla usuarios se puede incluir con la instrucción SELECT el carácter * o cada uno de los campos de la tabla. SELECT * FROM usuarios O SELECT identificación, nombres,.. FROM usuarios b) Para visualizar solamente la identificación del usuario SELECT identificacion FROM usuarios c) Si se desea obtener los registros cuya identificación sea menor o igual a 116, se debe utilizar la cláusula WHERE que específica las condiciones que deben reunir los registros que se van a seleccionar. SELECT * FROM usuarios WHERE identificación<= 116 d) Si se desea obtener los registros cuyos nombres sean Andrés o Cristian, se debe utilizar el operador IN que específica los registros que se quieren visualizar de una tabla. SELECT nombres FROM usuarios WHERE nombres IN ( Andres, Cristian ) O se puede utilizar el operador OR SELECT * FROM usuarios WHERE nombres= Andrés OR nombres= Cristian e) Si se desea obtener los registros cuya identificación sea menor de 130 y la ciudad sea Bogota, se debe utilizar el operador AND. SELECT * FROM usuarios WHERE identificación<= 130 AND ciudad= Bogota f) Si se desea obtener los registros cuyos nombres empiecen por la letra C, se debe utilizar el operador LIKE que utiliza los patrones % (todos) y _ (carácter). SELECT * FROM usuarios WHERE nombres LIKE C% g) Si se desea obtener los registros cuyos nombres contenga la letra i. SELECT * FROM usuarios WHERE nombres LIKE %i% h) Si se desea obtener los registros donde la segunda letra del nombre sea una o. 49

50 SELECT * FROM usuarios WHERE nombres LIKE _o% i) Si se desea obtener los registros cuya identificación esté entre el intervalo 116 y 140, se debe utilizar la cláusula BETWEEN, que sirve para específicar un intervalo de valores DELETE SELECT * FROM usuarios WHERE identificación BETWEEN 116 AND 140 La sentencia SQL de eliminación de datos DELETE permite borrar todos o un grupo específico de registros de una tabla. Su formato es: DELETE FROM nombre_tabla A continuación se realizarán algunos ejemplos: a) Para eliminar todos los registros de la tabla usuarios. DELETE FROM usuarios b) Para eliminar solamente los registros cuya identificación sea mayor de 150. DELETE FROM usuarios WHERE identificación > 150 c) Para eliminar los registros diferentes del nombre Cristian UPDATE DELETE FROM usuarios WHERE nombres NOT IN ( Cristian ) La sentencia SQL de actualización UPDATE permite actualizar un campo de una tabla. Su formato es: UPDATE nombre_tabla SET nombre_campo=criterio A continuación se realizan algunos ejemplos: a) Para actualizar el campo credito con un valor de en la tabla usuarios. UPDATE usuarios SET credito= b) Para actualizar el campo credito en para los registros cuyo nombre empiecen por A. UPDATE usuarios SET credito=credito WHERE nombres LIKE A% c) Para actualizar el campo credito en para los registros cuya ciudad sea igual a Bogota. UPDATE usuarios SET credito=credito WHERE ciudad= Bogota 50

51 INNER JOIN Permite recuperar datos de 2 o más tablas. Cuando se realiza la concatenación de las tablas, no necesariamente se deben mostrar todos los datos de las tablas, o sea, se pueden mostrar los campos que en realidad se desea ver. Su formato es: SELECT tabla1.campo, tabla2.campo, tabla1.campo2,. FROM tablaprincipal INNER JOIN tablasecundaria ON campocomuntabla1=campocomuntabla2 Para realizar algunos ejemplos explicativos se utilizara la tabla usuarios y además se supondrá que se tiene otra tabla llamada pedidos, que contendrá la siguiente estructura: Tabla 2.8 Estructura de los campos de la tabla USUARIOS. Y que contiene la siguiente información: Campo Tipo de Dato Longitud nropedido varchar 15 identificacion varchar 15 fechacompra date 20 fechavence date 25 observacíon varchar 30 Tabla 2.9 Información de la tabla usuarios. nropedido Identificación fechacompra fechavence observacíon /02/ /02/2006 Pago de contado /03/ /03/2006 Descuento del 5% /05/ /06/2006 Descuento del 2% /08/ /10/2006 Pago a sesenta días /12/ /12/2006 Pago de contado /04/ /06/2006 Sin descuento /06/ /07/2006 Descuento del 5% /06/ /09/2006 Pago a noventa días /08/ /09/2006 Pago de contado a) Para visualizar los campos identificación, nombres, apellidos de la tabla usuarios y nropedido, fecha de compra, fecha de vencimiento y observación de la tabla pedidos, se debe realizar la siguiente instrucción: SELECT usuarios.identificacion, usuarios.nombres, usuarios.apellidos, pedidos.nropedido, pedidos.fechacompra, pedidos.fechavence, pedidos.observacíon FROM usuarios INNER JOIN pedidos ON usuarios.identificacion = pedidos.identificacion b) Para visualizar todos campos de las tablas usuarios y pedidos donde identificación sea igual a 100, se debe realizar la siguiente instrucción: SELECT usuarios.*, pedidos.* FROM usuarios INNER JOIN pedidos ON usuarios.identificacion = pedidos.identificacion WHERE usuarios.identificacion=100 51

52 2.4 Conexión a bases de datos Visual Basic.NET utiliza la tecnología ADO.NET que permite el acceso a bases de datos mediante proveedores para sistemas administradores de bases de datos que funcionan en el entorno.net. La plataforma.net incorpora cuatro proveedores: SQL SERVER, ORACLE, ODBC (Access), OLEDB. ADO.NET proporciona acceso a orígenes de datos como Microsoft SQL Server y XML, así como a orígenes de datos OLE DB y ODBC. Las aplicaciones para usuarios que comparten datos pueden utilizar ADO.NET para conectar a estos orígenes de datos y recuperar, manipular y actualizar los datos contenidos. ADO.NET es un conjunto de clases que se encuentran en el archivo System.Data.dll y está integrada con las clases del archivo System.Xml.dll. Cuando se compila un código que utiliza el espacio de nombres System.Data se hace referencia a dichos archivos. Estas clases sirven para separar el acceso a la base de datos y la manipulación de los mismos. Sus principales clases son: DataSet: Es el conjunto de datos donde se pueden incluir una o más tablas con la información acerca de las relaciones entre éstas, y las restricciones que puedan tener los datos. DataTable: Permite la manipulación de los datos en la memoria y realiza operaciones como exploración, ordenación, edición, aplicación de filtros, creación de vistas, etc. DataView: Permite representar los datos de la clase DataTable, creando múltiples vistas de los mismos. Los proveedores de datos proporcionan el puente entre las bases de datos y las aplicaciones. Los principales objetos de un proveedor de datos.net son: Connection: Sirve para establecer una conexión con una base de datos. Se utiliza SqlConnection para una conexión a SQL Server, OleDbConnection para una conexión a Access y OracleConnection para Oracle. Command: Sirve para ejecutar sentencias SQL y devolver resultados de una base de datos. Se utiliza SqlCommand para una conexión a SQL Server, OleDbCommand para una conexión a Access y OracleCommand para Oracle. DataAdapter: Es el adaptador de datos, el cual es un conjunto de objetos para intercambiar datos entre una base de datos y un conjunto de datos. Se utiliza SqlDataAdapter para una conexión a SQL Server, OleDataAdapter para una conexión a Access y OracleDataAdapter para Oracle. 2.5 Ejemplos de conexión a bases de datos Conexión a una base de datos de SQL Server Dentro de un proyecto llamado ConexionBDSQLSERVER, realizar un programa que permita a un usuario hacer una conexión a una base de datos de SQL Server y mostrar 52

53 los datos de una tabla en un objeto DataGridView, utilizando código de Visual Basic.NET. NOTA: para este ejemplo el usuario debe tener instalado Microsoft SQL SERVER 2005 o posterior y crear una base de datos llamada bdlibrovbnet (Ver anexo C, SQL Server) y dentro de ella una tabla llamada clientes, con la siguiente estructura: Figura 2.1 Estructura tabla clientes en SQL Server. Dicha tabla debe contener unos registros para poder consultarlos. La siguiente figura muestra el aspecto de la tabla con los datos: Figura 2.2 Tabla clientes con datos SQL Server. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Button, 1 Label y 1 DataGridView. 53

54 Figura 2.3 Interfaz de usuario (ConexionBDSQLSERVER). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 2.10 Propiedades de controles proyecto ConexionBDSQLSERVER. Nombre del proyecto: ConexionBDSQLSERVER Control Propiedad Valor DataGridView1 Name tabla Button1 Name boton Text Mostrar datos tabla Label1 Name titulo Text Conexión a una base de datos de SQL SERVER. Font True Form1 Name formulario Text Conexión BD SQL SERVER - Clientes. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 2.4 Interfaz de usuario modificada (ConexionBDSQLSERVER). 54

55 Escribir código 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 El espacio de nombres System.Data.SqlClient es necesario para utilizar las diferentes clases que permitan las operaciones con bases de datos, en este caso SQL Server. b) Seleccione el objeto boton, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated Security=True" Dim seleccion As String = "SELECT * FROM clientes" Dim adaptadordedatos As SqlDataAdapter Dim tabladedatos As New DataTable 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 conexión a la base de datos de SQL Server. La cadena de conexión debe contener como mínimo los siguientes parámetros: Data Source: Se le asigna la ruta donde se encuentra el servidor SQL Server, en este caso, SQL Server se instalo en el computador de trabajo por lo cual el nombre del servidor es localhost o como dirección IP Database: Se le asigna el nombre de la base de datos a la que se quiere conectar. Integrated Security: Se le asigna true o false para determinar si la seguridad es integrada o no. Luego se crean los siguientes objetos: seleccion de tipo String a la cual se le asigna todos los datos que se quiere mostrar, en este caso todos los registros de la tabla clientes (Select * from Clientes); adaptadordedatos de tipo SqlDataAdapter, el cual será el adaptador de datos para la base de datos a manipular; 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 55

56 adaptadordedatos, al cual se le envía como parámetros los objetos seleccion (datos a mostrar) y conexion (cadena de conexión), luego se rellena (fill) el adaptador de datos con la tabla de datos (tabladedatos) y por último al objeto tabla en su propiedad DataSource se le establece el conjunto de datos que se van a mostrar al asignársele la tabla de datos. Por el bloque Catch se establece un mensaje en caso de que ocurra un error. Ejecutar el proyecto Al ejecutarse el proyecto y pulsar el botón Mostrar datos tabla, se visualizará el formulario con los datos de la tabla clientes de SQL Server: Figura 2.5 Formulario con datos de la tabla clientes de SQL Server Conexión a una base de datos de ACCESS Crear un proyecto llamado ConexionBDACCESS y diseñar un programa que permita a un usuario realizar una conexión a una base de datos de ACCESS y mostrar los datos de una tabla en un objeto DataGridView, utilizando código de Visual Basic.NET. NOTA: para este ejemplo el usuario debe tener instalado Microsoft Access y crear una base de datos llamada bdaccesslibrovbnet y dentro de ella una tabla llamada clientes (búsque en Internet cómo crear una base de datos y una tabla en Microsoft Access), con la siguiente estructura: Figura 2.6 Estructura tabla clientes en Access. 56

57 Dicha tabla debe contener unos registros para poder consultarlos. La siguiente figura muestra el aspecto de la tabla con los datos: Figura 2.7 Tabla clientes con datos en Access. Crear la interfaz de usuario. Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Button, 1 Label y 1 DataGridView. Figura 2.8 Interfaz de usuario (ConexionBDACCESS). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 2.11 Propiedades de controles proyecto ConexionBDACCESS. Control Propiedad Valor DataGridView1 Name tabla Button1 Name boton Text mostrar datos tabla Label1 Name titulo Text Conexión a una base de datos de ACCESS. Font True Form1 Name formulario Text Conexión a ACCESS tabla Clientes. 57

58 La interfaz de usuario queda como se muestra en la siguiente figura: Figura 2.9 Interfaz de usuario modificada (ConexionBDACCESS). Escribir código a) Antes de la apertura de la clase formulario se debe importar el espacio de nombres system.data.oledb: Imports System.Data.OleDb Public Class Form1. End Class El espacio de nombres System.Data.OleDb es necesario para utilizar las diferentes clases que permitan las operaciones con la base de datos Access. b) Seleccione el objeto boton, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & "f:\bdaccess\bdaccesslibrovbnet.mdb" & ";" Dim seleccion As String = "SELECT * FROM clientes" Dim adaptadordedatos As OleDbDataAdapter Dim tabladedatos As New DataTable Try adaptadordedatos = New OleDbDataAdapter(seleccion, conexion) adaptadordedatos.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try 58

59 Con relación al código que se realizó para conectarse a la base de datos SQL Server, se efectuarón dos cambios, a saber: 1) Cadena de conexión: Dicha conexión debe contener como mínimo los siguientes parámetros: Provider: Es el proveedor del sistema administrador de bases de datos, en este caso es Microsoft.Jet.OLEDB.4.0, el cual es el proveedor de la base de datos Access. Data Source: Se específica la ruta y el nombre de la base de datos a utilizar. 2) Adaptador de datos: se cambia el adaptador de datos SqlDataAdapter por OleDBDataAdapter. Ejecutar el proyecto Al ejecutarse el proyecto y pulsar el botón mostrar datos tabla, se visualizará el formulario con los datos de la tabla clientes de Access: Figura 2.10 Formulario con datos de la tabla clientes de Access Conexión a una base de datos de ORACLE con código Realizar un proyecto llamado ConexionBDORACLE, y desde allí permitir a un usuario realizar una conexión a una base de datos de Oracle 10g Express Edition y mostrar los datos de una tabla en un objeto DataGridView. NOTA: para este ejemplo el usuario debe tener instalada la base de datos Oracle 10g Express Edition (Ver anexo D, Oracle Database 10g Express), e ingresar con el 59

60 usuario y clave creados cuando se realiza la instalación del Oracle y crear una tabla llamada clientes, con la siguiente estructura: Figura 2.11 Estructura tabla clientes en Oracle. Dicha tabla debe contener unos registros para poder consultarlos. La siguiente figura muestra el aspecto de la tabla con los datos en Oracle: Figura 2.12 Tabla clientes con datos en Oracle. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Button, 1 Label y 1 DataGridView. 60

61 Figura 2.13 Interfaz de usuario (ConexionBDORACLE). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 2.12 Propiedades de controles proyecto ConexionBDORACLE. Control Propiedad Valor DataGridView1 Name tabla Button1 Name boton Text Mostrar datos tabla Label1 Name titulo Text Conexión a una Base de Datos de ORACLE. Font True Form1 Name formulario Text Conexión a ORACLE tabla Clientes. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 2.14 Interfaz de usuario modificada (ConexionBDORACLE). 61

62 Escribir código a) Antes de la apertura de la clase formulario se debe importar el espacio de nombres System.Data.OleDb: Imports System.Data.OleDb Public Class Form1. End Class El espacio de nombres System.Data.OleDb es necesario para utilizar las diferentes clases que permitan las operaciones con una base de datos Oracle. b) Seleccione el objeto boton, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Provider=MSDAORA.1;User ID=system;password=123456;" & "Data Source=localhost;Persist Security Info=False" Dim seleccion As String = "SELECT * FROM clientes" Dim adaptadordedatos As OleDbDataAdapter Dim tabladedatos As New DataTable Try adaptadordedatos = New OleDbDataAdapter(seleccion, conexion) adaptadordedatos.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try Con relación al código que se realizo para conectarse a la base de datos ACCESS, se hizo solamente el cambio de la cadena de conexión. Dicha conexión debe contener como mínimo los siguientes parámetros: Provider: Es el proveedor del sistema administrador de bases de datos, en este caso es MSDORA.1, el cual es el proveedor de la base de datos ORACLE. User: es la identificación del usuario y su respectiva clave. Data Source: Se le específica la dirección del servidor donde se encuentra la base de datos a utilizar. Persist Security Info: Se le asigna true o false para determinar si la seguridad es persistente o no. Ejecutar el proyecto Al ejecutarse el proyecto y pulsar el botón Mostrar datos tabla, se visualizará el formulario con los datos de la tabla clientes de Oracle: 62

63 Figura 2.15 Formulario con datos de la tabla clientes de Oracle. 2.6 Conexión a una bases de datos con el explorador de servidores También es posible establecer una conexión y realizar operaciones con una base de datos utilizando la herramienta Explorador de servidores (explorador de bases de datos Visual Basic.NET /2005) del menú Ver, el cual tiene asociados las opciones: Actualizar, Detener Actualización, Conectar con Base de Datos y Conectar con el Servidor. Esta herramienta mantiene las conexiones definidas y/o permite definir nuevas. Cada conexión define un nodo con la estructura de la base de datos Conexión a SQL Server con el Explorador de servidores Dentro de un proyecto llamado ConexionConExploradorServidores, realizar un programa que permita a un usuario hacer una conexión a una base de datos de SQL Server y mostrar los datos de una tabla en un objeto DataGridView utilizando el Explorador de servidores de Visual Basic. NET. NOTA: para este ejemplo se utilizará la base de datos llamada bdlibrovbnet de SQL Server (Ver anexo C, conectarse a SQL Server) y la tabla llamada clientes de dicha base de datos. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label y 1 DataGridView. 63

64 Figura 2.16 Interfaz de usuario (ConexionConExploradordeServidores). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 2.13 Propiedades de los controles de ConexionConExploradordeServidores Control Propiedad Valor DataGridView1 Name tabla Label1 Name texto Text Conexión a SQL Server con el Explorador de servidores. Font True Form1 Name formulario Text Conexión con Explorador de servidores. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 2.17 Interfaz de usuario con controles modificados. 64

65 Explorador de servidores.. Del menú Ver seleccione la opción Explorador de servidores, para visualizar la siguiente figura: Figura 2.18 Ventana Explorador de servidores. Al pulsar el icono conectar con bases de datos Agregar conexión como muestra la figura:, se visualizará la ventana de Figura 2.19 Ventana Agregar conexión. 65

66 En esta ventana se puede realizar básicamente lo siguiente: Elegir proveedor base de datos: se puede cambiar el proveedor de la base de datos. Por omisión se carga el sistema administrador de base de datos SQL Server. Elegir base de datos: permite elegir la base de datos a utilizar. Probar la conexión: permite saber si una conexión ha sido exitosa o no. Modificar la cadena de conexión: con la opción Avanzadas se puede modificar la conexión. Para el ejemplo, seleccione la base de datos bdlibrovbnet.mdf, la cual se encuentra en la carpeta data de SQL Server (si la instalación la realizó en c:\ la ruta sería: C:\Archivos de programa\microsoft SQL Server\MSSQL.1\MSSQL\Data. Si desea puede probar la conexión y si fue exitosa se mostrará el mensaje La conexión de prueba se realizó correctamente. Figura 2.20 Ventana con la base de datos seleccionada y la prueba de conexión. Pulse los botones Aceptar hasta visualizar la siguiente figura: Figura 2.21 Explorador de servidor con la conexión a la base de datos. 66

67 Al pulsar en el signo (+) al lado del nombre de la base de datos se visualizará la estructura definida en la base de datos. Si desea ver las tablas que contiene la base de datos pulse el signo (+) al lado de Tablas. Figura 2.22 Estructura de la base de datos bdlibrovbnet.mdf. Ahora seleccione el objeto DataGridView llamado tabla y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DataGridView: Figura 2.23 Ventana de las Tareas del DataGridView. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: Figura 2.24 Ventana Elegir origen de datos. 67

68 Ahora seleccione la opción Agregar origen de datos del proyecto, se visualizará la siguiente ventana: Figura 2.24 Asistente para la configuración de orígenes de datos. Seleccione el objeto Base de datos y pulse el botón Siguiente>, para visualizar la ventana de elección de la conexión de datos. Pulse la ventana y seleccione la base de datos bdlibrovbnet.mdf: Figura 2.25 Ventana Elegir la conexión de datos. Al seleccionar la base de datos que se va a trabajar y pulsando el botón Siguiente> se visualiza el siguiente mensaje: Figura 2.26 Ventana Microsoft Visual Studio. 68

69 Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto y se visualizará la ventana de guardar cadena de conexión: Figura 2.27 Ventana Guardar cadena de conexión. Cambie el nombre de la conexión que allí aparece por conexionsqlserver y pulse el botón Siguiente>, se visualizará la siguiente figura: Figura 2.28 Ventana de elección 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 botón Finalizar para visualizar la figura: 69

70 Figura 2.29 DataGridView con los campos de la tabla clientes. Como se puede apreciar, se crearon tres nuevos objetos: el objeto conjuntodedatos que contendrá los datos seleccionados, el objeto ClientesBindingSource que en su propiedad DataSource se le asignará el objeto conjuntodedatos y en la propiedad DataMember el nombre de tabla seleccionada. Por otro lado, se creó el objeto ClientesTableAdapter, el cual será el adaptador de datos para la conexión realizada. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará en el formulario los datos de la tabla clientes en el objeto DataGridView de la base de datos bdlibrovbnet.mdf de SQL Server: Figura 2.30 DataGridView con los datos de la tabla clientes de SQL Server. 70

71 2.7 Ejercicios de conexión a bases de datos 1. Diseñar un programa que permita realizar una conexión a una base de datos y mostrar datos de una tabla en un control ComboBox. 2. Crear un programa que permita realizar una conexión a una base de datos y mostrar datos de una tabla en un control ListView. 3. Realizar un programa que permita realizar una conexión a una base de datos y mostrar datos de una tabla en un control ListBox. 4. Elaborar un programa que permita realizar una conexión a una base de datos y mostrar los datos de una tabla en un campo de texto. 5. Realizar un programa que permita realizar una conexión a una base de datos y mostrar los campos de una tabla en un Label. 6. Hacer un programa que permita realizar una conexión a una base de datos MySQL y mostrar datos de una tabla en una cuadrícula. 7. Diseñar un programa que permita realizar una conexión a una base de datos en Oracle utilizando la herramienta explorador de servidores y mostrar los datos de una tabla en campos de texto. 8. Crear un programa que permita realizar una conexión a una base de datos en Access utilizando la herramienta explorador de servidores y mostrar los datos de una tabla en Label. 9. Elaborar un programa que permita realizar una conexión a una base de datos en MySQL y mostrar los datos de una tabla en un ListBox. 10. Realizar un programa que permita hacer una conexión a una base de datos en MySQL y mostrar los datos de una tabla en un control ListView. 71

72 3. DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA Hasta el momento con los ejemplos se ha realizado una conexión a una base de datos ya sea utilizando código o por medio de la herramienta Explorador de servidores y recurriendo al control DataGridView, visualizándose los registros de una tabla específica. Ahora lo que se pretende es que el usuario, aparte de visualizar la información que contenga una tabla, también pueda desplazar o moverse por cada uno de los registros que contenga dicha tabla. Está operación la podrá realizar en un formulario utilizando campos de texto (TextBox) o una cuadrícula (DataGridView) y poder desplazarse por cada uno de los registros por medio de botones (Button) o de un control BindingNavigator. Para esto es necesario implementar las opciones de movimiento de registros: ir al primer registro, al siguiente registro, al anterior registro y al último registro. 3.1 Ejemplos de desplazamiento por los registros de una tabla Formulario con campos de texto y botones Dentro de un proyecto llamado MovregCampotexto, realizar un programa que permita visualizar cada registro de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en campos de texto. El usuario deberá poder desplazarse por cada registro de la tabla utilizando los botones: Primero, Siguiente, Anterior y Último. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 4 Button, 7 Label y 6 TextBox. Figura 3.1 Interfaz de usuario (MovRegCampoTexto). 72

73 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 3.1 Propiedades de controles proyecto MovRegCampoTexto. Nombre del proyecto: MovRegCampoTexto Control Propiedad Valor Label1 Name texto Text Desplazamiento registros tabla clientes. Font true Label2 Name tnit Text Nit: Label3 Name tempresa Text Empresa: Label4 Name trepresentante Text Representante: Label5 Name tdireccion Text Dirección: Label6 Name ttelefono Text Teléfono: Label7 Name tciudad Text ciudad Textobox1 Textbox6 Name campo1.campo6 Text blanco Button1 Name botonprimero Text Primero Button2 Name botonsiguiente Text Siguiente Button3 Name botonanterior Text Anterior Button4 Name botonúltimo Text Último Form1 Name formulario Text Desplazamiento de Registros de una tabla. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 3.2 Interfaz de usuario modificada (MovRegCampoTexto). 73

74 Establecer la conexión 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, selecciónelo en el cuadro de verificación y pulse el botón Aceptar). Se visualizará la siguiente figura: Figura 3.3 Ventana Elegir la conexión de datos Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Figura 3.4 Ventana Agregar conexión. Pulse el botón Aceptar, para visualizar nuevamente la ventana de Elegir la conexión de datos. Allí pulse Siguiente> para visualizar el siguiente mensaje: 74

75 Figura 3.5 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto. El Explorador de soluciones visualizaría la base de datos como muestra la figura: Figura 3.6 Ventana Explorador de soluciones. Y también se visualizará la ventana de elección de tipo de comando: Figura 3.7 Ventana elección tipo de comando. Por omisión está seleccionada la opción Usar Instrucciones SQL. Pulse Siguiente> para visualizar la ventana de generación de instrucciones SQL. 75

76 Figura 3.8 Ventana Generar las instrucciones SQL. Aquí se puede realizar la selección de los datos que debería cargar el adaptador de datos. Una forma es escribir en la ventana instrucciones SQL y la otra es pulsar el botón Generador de consultas. Para el ejemplo se pulsará el botón para visualizar la siguiente figura: Figura 3.9 Ventana Generador de consultas. Seleccione la tabla clientes, pulse el botón Agregar y luego el botón Cerrar, se visualizará la siguiente figura: 76

77 Figura 3.10 Generador de consultas con la tabla clientes. En esta nueva ventana seleccione la opción * (todas las columnas) o los campos que desea visualizar (Si desea visualizar la consulta seleccionada pulse el botón Ejecutar consulta). Se obtendrá la siguiente figura: Figura 3.11 Generador de consultas con los campos seleccionados (tabla clientes). Pulse el botón Aceptar, y se visualizará la siguiente figura: 77

78 Figura 3.12 Generador de consultas con la instrucción SQL. Al pulsar el botón Finalizar, se crearán los objetos: SqlDataAdapter1 y SqlConnection1. Cambie el nombre de dichos objetos por adaptadordedatos y conexion respectivamente, para ver la siguiente figura: Figura 3.13 Formulario con los objetos adaptadordedatos y conexión. Ahora ejecute la opción Generar Conjunto de Datos del menú Datos y se mostrará el siguiente cuadro de diálogo: 78

79 Figura 3.14 Ventana Generar conjunto de datos. Seleccione la opción Nuevo y cambie el nombre DataSet1 por conjuntodedatos y pulse el botón Aceptar para agregar el conjunto de datos a la aplicación, como muestra la figura: Figura 3.15 Formulario con el objeto conjuntodedatos. Ahora se deben vincular los campos de texto con los campos de la tabla clientes. Seleccione el objeto campo1, busque la propiedad DataBindings, expanda el nodo (+), seleccione la propiedad Text y expanda los nodos formulario instancias de lista, conjuntodedatos, clientes y seleccione el campo nit, como se aprecia en la figura: 79

80 Figura 3.16 Vinculación del campo nit al objeto campo1. Realice el paso anterior para cada objeto TextBox (campo2 campo6) asignándole un campo respectivamente de la tabla clientes. Al finalizar dé doble clic sobre el formulario para visualizar el procedimiento formulario_load y allí digite el siguiente código: conjuntodedatos.clear() adaptadordedatos.fill(conjuntodedatos) En el anterior código primero se limpia el conjunto de datos actual utilizando el metodo clear y luego se llama al método fill (rellenar) del adaptador de datos, pasandole como argumento el conjunto de datos que se desea visualizar. Al ejecutar la aplicación se muestra algo similar a la figura 3.17: Figura 3.17 Visualización del primer registro de la tabla clientes. Como se puede apreciar, solamente se visualiza el primer registro de la tabla clientes. Para poder ver cada uno de los registros de la tabla se debe realizar el código para los botones: Primero, Siguiente, Anterior, Último. Escribir código para los botones a) Seleccione el objeto botonprimero, dé doble clic para abrir el editor de código y 80

81 escriba el siguiente código: BindingContext(conjuntodedatos, "clientes").position = 0 Se utiliza el objeto BindingContext de la clase Form que recibe el conjunto de datos y el nombre de la tabla. Con la propiedad Position se realiza el desplazamiento de los registros de la tabla, en este caso, la posicion es igual a cero (0) lo que indica que el cursor de la tabla estara en el primer registro. b) Seleccione el objeto botonsiguiente, dé doble clic para abrir el editor de código y escriba el siguiente código: BindingContext(conjuntodedatos, "clientes").position += 1 La propiedad Position se incrementa en uno para desplazarse al siguiente registro. c) Seleccione el objeto botonanterior, dé doble clic para abrir el editor de código y escriba el siguiente código: BindingContext(conjuntodedatos, "clientes").position -= 1 La propiedad Position se decrementa en uno para desplazarse al anterior registro. d) Seleccione el objeto botonúltimo, dé doble clic para abrir el editor de código y escriba el siguiente código: BindingContext(conjuntodedatos, "clientes").position = _ BindingContext(conjuntodedatos, "clientes").count - 1 La propiedad Position se hace igual al número de registros 1. Se utiliza el método count para contar los registros de la tabla clientes. Al volver a ejecutar la aplicación, y cuando el usuario pulse cada uno de los botones se podrá desplazar por cada uno de los registros de la tabla clientes. Figura 3.18 Desplazamiento por los registros de la tabla clientes. 81

82 3.1.2 Formulario con una cuadrícula y botones Diseñar de un proyecto llamado MovregDataGridView, y realizar un programa que permita visualizar cada registro de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en una cuadrícula. El usuario deberá poder desplazarse por cada registro de la tabla utilizando los botones: Primero, Siguiente, Anterior y Último. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 4 Button, 1 DataGridView. Figura 3.19 Interfaz de usuario (MovRegDataGridView). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 3.2 Propiedades de controles proyecto MovRegDataGridView. Nombre del proyecto: MovRegDataGridView Control Propiedad Valor DataGridView1 Name tabla Button1 Name botonprimero Text Primero Button2 Name botonsiguiente Text Siguiente Button3 Name botonanterior Text Anterior Button4 Name botonúltimo Text Último Form1 Name formulario Text Desplazamiento de Registros en un DataGridView. La interfaz de usuario queda como se muestra en la siguiente figura: 82

83 Figura 3.20 Interfaz de usuario modificada (MovRegDataGridView). Escribir código 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 El espacio de nombres System.Data.SqlClient es necesario para utilizar las diferentes clases que permitan las operaciones con la base de datos SQL Server. b) Después de la apertura de la clase formulario y antes de los procedimientos sub, inicialice las siguientes variables u objetos globales: Private transaccion As New BindingSource Private adaptador As SqlDataAdapter Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Se inicializan los siguientes objetos: transacción de tipo BindingSource para encapsular y manipular el origen de los datos; adaptador de tipo SqlDataAdapter para intercambiar datos con una base de datos SQL Server; conexión de tipo String al que se le asignará la cadena de conexión para SQL Server. c) Dé doble clic sobre el formulario para abrir el editor de código del procedimiento formulario_ Load y escriba el siguiente código: 83

84 tabla.datasource = transaccion Dim seleccion As String = "Select * From clientes" Try adaptador = New SqlDataAdapter(seleccion, conexion) Dim comando As New SqlCommandBuilder(adaptador) Dim tabladedatos As New DataTable() adaptador.fill(tabladedatos) transaccion.datasource = tabladedatos With tabla.refresh().firstdisplayedscrollingrowindex = transaccion.position End With Catch ex As SqlException MsgBox(ex.Message.ToString) Catch ex As Exception MsgBox(ex.Message.ToString) End Try A la propiedad DataSource del objeto tabla se le establece el origen de datos (transaccion) y se crea una variable llamada seleccion de tipo String a la cual se le asigna la instrucción de SQL Select. En un bloque try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptador recibiendo los datos seleccionados (seleccion) y la cadena de conexión a SQL Server (conexion), como también se concede espacio de memoria al objeto tabladedatos de tipo DataTable. Luego se rellena (fill) el adaptador de datos (adaptador) con la tabla de datos (tabladedatos) y se asigna al objeto transacción la tabla de datos utilizando la propiedad DataSource. Por otro lado se refresca (Refresh ()) la cuadrícula para cargar los datos y se obtiene la posición del primer registro de la cuadrícula (FirstDisplayedScrollingRowIndex = transaccion.position). Utilizando dos bloques catch se atrapan las excepciones SQLException (por si existe algún error en la ejecución de las sentencias SQL) y Exception (por si existe algún problema con el sistema). d) d) Seleccione el objeto botonprimero, de doble clic para abrir el editor de código y escriba el siguiente código: transaccion.movefirst() Se utiliza el método MoveFirst() del objeto transaccion para moverse al primer registro de la tabla. e) Seleccione el objeto botonsiguiente, dé doble clic para abrir el editor de código y escriba el siguiente código: transaccion.movenext() Se utiliza el método MoveNext() del objeto transaccion para moverse al siguiente registro de la tabla. f) Seleccione el objeto botonanterior, dé doble clic para abrir el editor de código y escriba el siguiente código: transaccion.moveprevious() 84

85 Se utiliza el método MovePrevious() del objeto transaccion para moverse al anterior registro de la tabla. g) Seleccione el objeto botonúltimo, dé doble clic para abrir el editor de código y escriba el siguiente código: transaccion.movelast() Se utiliza el método MoveLast del objeto transaccion para moverse al último registro de la tabla. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará el formulario con los datos en el objeto DataGridView de la tabla clientes de SQL Server y los botones de desplazamiento. El usuario podrá pulsar cualquier botón y se desplazara por cada registro de la tabla en la cuadrícula. Figura 3.21 Formulario con un DataGridView y botones de desplazamiento Formulario con una cuadrícula y un control BindingNavigator Diseñar de un proyecto llamado MovregBindingNavigator y realizar un programa que permita visualizar cada registro de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en una cuadrícula. El usuario deberá poder desplazarse por cada registro de la tabla utilizando un control BindingNavigator. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 BindingNavigator, 1 DataGridView. 85

86 Figura 3.22 Interfaz de usuario (MovRegBindingNavigator). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 3.3 Propiedades de controles proyecto MovRegDataGridView. Control Propiedad Valor DataGridView1 Name tabla BindingNavigator1 Name navegador Form1 Name formulario Text Desplazamiento de Registros en un BindingNavigator. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 3.23 Interfaz de usuario modificada (MovRegDataGridView). 86

87 Ahora seleccione el objeto DataGridView llamado tabla y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DataGridView: Figura 3.24 Ventana de las Tareas de DataGridView. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: Figura 3.25 Ventana Elegir origen de datos. Al seleccionar Agregar origen de datos del proyecto, se visualizará la siguiente ventana: 87

88 Figura 3.26 Asistente para la configuración de orígenes de datos. Seleccione el objeto Base de datos y pulse el botón Siguiente>, para visualizar la ventana de elección de la base de datos: Figura 3.27 Ventana Elegir la conexión de datos. Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. 88

89 Figura 3.28 Ventana Agregar conexión. Al pulsar el botón Aceptar se visualizará nuevamente la ventana de elección de conexión de datos con la base de datos bdlibrovbnett.mdf, como se aprecia en la siguiente figura: Figura 3.29 Ventana con la base de datos seleccionada. Pulse Siguiente> para visualizar el siguiente mensaje: 89

90 Figura 3.30 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto y visualizar la ventana de guardar cadena de conexión: Figura 3.31 Ventana Guardar cadena de conexión. Cambie el nombre de la conexión que allí aparece por conexion y pulse el botón Siguiente>, se visualizará la siguiente figura: Figura 3.32 Ventana de elección de objetos de la base de datos. 90

91 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 botón Finalizar, para visualizar la figura 3.33: Figura 3.33 DataGridView con los campos de la tabla clientes. Como se puede apreciar, se crearon tres nuevos objetos: el objeto conjuntodedatos que contendrá los datos seleccionados; el objeto ClientesBindingSource que en su propiedad DataSource tiene asignado el objeto conjuntodedatos y en la propiedad DataMember el nombre de tabla seleccionada. Por otro lado, se creó el objeto ClientesTableAdapter, el cual será el adaptador de datos para la conexión realizada. Seleccione el objeto navegador y en la propiedad BindingSource asigne el objeto ClientesBindingSource para poder desplazarse por cada uno de los registros que contiene la cuadrícula. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará el formulario con los datos de la tabla clientes de SQL Server en el objeto DataGridView y por medio del control BindingNavigator podrá desplazarse por cada uno de los registros: Figura 3.34 Formulario con un DataGridView y un BindingNavigator 91

92 3.2 Ejercicios de desplazamiento por los registros de una tabla 1. Realizar un programa que permita hacer una conexión a ORACLE y visualizar los registros de una tabla en campos de texto y desplazarse por ellos. 2. Diseñar un programa que permita realizar una conexión a ORACLE y visualizar los registros de una tabla en una cuadrícula y desplazarse por ellos. 3. Crear un programa que permita realizar una conexión a ORACLE y visualizar los registros de una tabla en un ListView y desplazarse por ellos con control BindingNavigator. 4. Hacer un programa que permita realizar una conexión a ACCESS y visualizar los registros de una tabla en campos de texto y desplazarse por ellos con un control BindingNavigator. 5. Elaborar un programa que permita realizar una conexión a ACCESS y visualizar los registros de una tabla en una cuadrícula y desplazarse por ellos. 6. Realizar un programa que permita hacer una conexión a ACCESS y visualizar los registros de una tabla en un ListView y desplazarse por ellos. 7. Hacer un programa que permita realizar una conexión a MySQL y visualizar los registros de una tabla en campos de texto y desplazarse por ellos. 8. Elaborar un programa que permita realizar una conexión a MySQL y visualizar los registros de una tabla en una cuadrícula y desplazarse por ellos. 9. Diseñar un programa que permita realizar una conexión a MySQL y visualizar los registros de una tabla en un ListView y desplazarse por ellos con un control BindingNavigator. 10. Crear un programa que permita realizar una conexión a SQL Server y visualizar los registros de una tabla en un ListView y desplazarse por ellos. 92

93 4. OPERACIONES CON TABLAS DE UNA BASE DE DATOS Cuando se trabaja con bases de datos se pueden realizar operaciones de añadir, eliminar tablas, vistas, como también insertar, modificar, eliminar o consultar información de una tabla. Generalmente estas operaciones se realizan ejecutando instrucciones del lenguaje SQL. En este aparte se realizarán ejemplos que permitan efectuar dichas operaciones utilizando algunos de los controles de Visual Basic.NET. 4.1 Ejemplos de operaciones con tablas de una base de datos Insertar registros en una tabla utilizando campos de texto Desde un proyecto llamado InsertarRegCampoTexto, hacer un programa que permita insertar datos en la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server. Los datos a insertar de deben capturar en campos de texto (TextBox). Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Button, 7 Label y 6 TextBox. Figura 4.1 Interfaz de usuario (InsertarRegcampoTexto). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 93

94 Tabla 4.1 Propiedades de controles proyecto InsertarRegCampoTexto. Control Propiedad Valor Label1 Name texto Text Insertar Registros en la tabla clientes. Font true Label2 Name tnit Text Digite Nit: Label3 Name tempresa Text Nombre empresa: Label4 Name trepresentante Text Representante: Label5 Name tdireccion Text Dirección: Label6 Name ttelefono Text Teléfono: Label7 Name tciudad Text Ciudad Textobox1 Textbox6 Name campo1.campo6 Text blanco Button1 Name botoninsertar Text Insertar Registro Form1 Name formulario Text Insertar registros en una tabla. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 4.2 Interfaz de usuario modificada (InsertarRegCampoTexto). Escribir código a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio de nombres: 94

95 Imports System.Data.SqlClient Public Class Form1. End Class b) Seleccione el objeto botoninsertar, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated Security=True" Dim tnit As String = campo1.text Dim tempresa As String = campo2.text Dim trepresentante As String = campo3.text Dim tdireccion As String = campo4.text Dim ttelefono As String = campo5.text Dim tciudad As String = campo6.text Dim seleccion As String = "INSERT INTO clientes(nit, empresa, representante, direccion,telefono,ciudad)values('" + tnit + "','" + tempresa + "','" + trepresentante + "','" + tdireccion + "','" + ttelefono + "','" + tciudad + "')" Dim adaptadordedatos As SqlDataAdapter Dim tabladedatos As New DataTable Try adaptadordedatos = New SqlDataAdapter(seleccion, conexion) adaptadordedatos.fill(tabladedatos) MsgBox("Registro insertado", MsgBoxStyle.Information) Catch ex As Exception MsgBox("Error: " & ex.message, MsgBoxStyle.AbortRetryIgnore) End Try Se crean las variables tnit, tempresa, trepresentante, tdireccion, ttelefono, tciudad de tipo String que almacenarán los valores de cada campo de texto (campo1 campo6), también se crea una variable seleccion de tipo String que almacenará la instrucción SQL insert into. En dicha instrucción primero se selecciona la tabla donde se va a insertar el nuevo registro, seguido del nombre de los campos de dicha tabla y con la propiedad values se le asignan los respectivos valores a cada campo. Se crean los objetos adaptadordedatos de tipo SqlDataAdapter, el cual será el adaptador de datos para la base de datos a manipular; 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 envía como parámetros los objetos seleccion (sentencia SQL) y conexion (cadena de conexión), luego se rellena (fill) el adaptador de datos con la tabla de datos (tabladedatos) y por último se muestra el mensaje Registro Insertado. Por el bloque Catch se establece un mensaje en caso de que ocurra un error. 95

96 Ejecutar el proyecto Al ejecutarse el proyecto, se debe digitar la información solicitada en cada campo de texto y pulsar el botón Insertar Registro, se insertará el registro en la tabla clientes y se visualizará el mensaje de Registro Insertado. Si desea puede ejecutar alguno de los programas que permiten consultar una base de datos SQL Server para verificar que el registro efectivamente se ha guardado en la tabla. Figura 4.3 Formulario con datos en los campos de texto (InsertarRegCampoTexto). Figura 4.4 Mensaje cuando es insertado el registro (InsertarRegCampoTexto) Insertar registros en una tabla utilizando un DataGridView Crear un proyecto llamado InsertarRegDataGridView y realizar un programa que permita insertar datos en la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server. Los datos se deben visualizar y adicionar utilizando un control DataGridView. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 3 Button, 1 DataGridView. 96

97 Figura 4.5 Interfaz de usuario (InsertarRegDataGridView). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 4.2 Propiedades de controles proyecto InsertarRegDataGridView. Nombre del proyecto: InsertarRegDataGridView Control Propiedad Valor Button1 Name botoncargar Text Cargar datos Button2 Name botonnuevo Text Agregar registro Button3 Name botonguardar Text Guardar registro DataGridView1 Name tabla Form1 Name formulario Text Insertar registros en DataGridView. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 4.6 Interfaz de usuario modificada (InsertarRegDataGridView). 97

98 Escribir código 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 El espacio de nombres System.Data.SqlClient es necesario para utilizar las diferentes clases que permitan también las operaciones con la base de datos SQL Server. b) Después de la apertura de la clase formulario y antes de los procedimientos Sub, inicialice las siguientes variables u objetos globales: imports System.Data.SqlClient Public class formulario Private transaccion As New BindingSource Private adaptador As SqlDataAdapter Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database= bdlibrovbnet; Integrated Security=True".. End Class Se inicializan los siguientes objetos: transaccion de tipo BindingSource para encapsular y manipular el origen de los datos; adaptador de tipo SqlDataAdapter para intercambiar datos con una base de datos SQL Server; conexion de tipo String al que se le asignará la cadena de conexión para SQL Server. c) Dé doble clic sobre el formulario para abrir el editor de código y cree un nuevo procedimiento llamado cargar_datos: Public Sub cargar_datos(byval sentenciasql As String, ByVal tabla As DataGridView) Try adaptador = New SqlDataAdapter(sentenciasql, conexion) Dim comando As New SqlCommandBuilder(Adaptador) Dim tabladedatos As New DataTable() adaptador.fill(tabladedatos) transaccion.datasource = tabladedatos With tabla.refresh().firstdisplayedscrollingrowindex = transaccion.position End With Catch ex As SqlException MsgBox(ex.Message.ToString) Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub 98

99 El procedimiento cargar_datos recibe como parámetros una variable de tipo String llamada sentenciassql y un objeto tabla de tipo DataGridView. En un bloque Try se le asigna espacio de memoria al objeto adaptador de tipo SqlDataAdapter, el cual recibe la sentencia SQL y la cadena de conexión. Por otro lado, se crea un objeto tabladedatos al cual se le asigna espacio de memoria DataTable (). Se rellena el adaptador de datos (adaptador) con la tabla de datos (tabladedatos) y a la propiedad DataSource del objeto transaccion se le asigna la tabla de datos. Por otro lado, se refresca (Refresh ()) la cuadrícula para cargar los datos y se obtiene la posición del primer registro de la cuadrícula (FirstDisplayedScrollingRowIndex = transaccion.position). Utilizando dos bloques catch se atrapan las excepciones SQLException (por si existe algún error en la ejecución de las sentencias SQL) y Exception (por si existe algún problema con el sistema). d) Seleccione el objeto botoncargar, dé doble clic para abrir el editor de código y escriba el siguiente código: tabla.datasource = transaccion cargar_datos("select * from clientes", tabla) A la propiedad DataSource del objeto tabla se le establece el origen de datos (transaccion) y se llama al procedimiento cargar_datos enviándole la sentencia SQL Select * from clientes y el objeto tabla. e) Seleccione el objeto botonnuevo, dé doble clic para abrir el editor de código y escriba el siguiente código: transaccion.addnew() Se utiliza el método AddNew del objeto transaccion para crear un nueva fila en el objeto tabla. f) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: 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 tabla no es vacía por medio del método Update del objeto adaptador se guarda la nueva fila en la tabla clientes, enviándole el contenido del DataSource del objeto transaccion y un objeto DataTable. Por otro lado, se llama al procedimiento cargar_datos para mostrar nuevamente los registros de la tabla clientes. Si la fila es vacía se muestra el mensaje No se pudo guardar el registro. 99

100 Ejecutar el proyecto Al ejecutarse el proyecto y pulsar el botón Cargar Datos, se visualizarán los registros de la tabla clientes, como se aprecia en la siguiente figura: Figura 4.7 Formulario con los registros de la tabla clientes. Al pulsar el botón Agregar Registro, se seleccionará en una nueva fila el primer campo del objeto tabla, el formulario queda de la siguiente forma: Figura 4.8 Cuadrícula con una nueva fila para insertar datos. Si se captura la información en cada campo de la cuadrícula y luego se pulsa el botón Guardar Registro, se insertarán los datos en la tabla clientes. En la siguiente figura se aprecia el registro insertado: 100

101 Figura 4.9 Cuadrícula con un nuevo registro insertado en la tabla clientes Buscar registros por un campo específico Dentro de un proyecto llamado ConsultaPorCampo, diseñar un programa que permita buscar una ciudad específica en la tabla clientes y visualizar todos los registros que cumplan la condición en un control DataGridView. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label, 1 TextBox, 1 Button, 1 DataGridView. Figura 4.10 Interfaz de usuario (ConsultaPorCampo). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 101

102 Tabla 4.3 Propiedades de controles proyecto ConsultaPorCampo. Control Propiedad Valor Label1 Name titulo Text Ciudad a Buscar: TextBox1 Name campobusqueda Text blanco Button1 Name botonbuscar Text Buscar DataGridView1 Name tabla Form1 Name formulario Text Consultar tabla por campo. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 4.11 Interfaz de usuario modificada (ConsultaPorCampo). Escribir código 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 b) Seleccione el objeto botonbuscar, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated Security=True" Dim clave = campobusqueda.text Dim seleccion As String = "SELECT * FROM clientes where ciudad='" + clave + "'" Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try 102

103 adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos If Not (tabla.rows.count - 1 > 0) Then MsgBox("Ciudad no existe en la tabla Clientes...", MsgBoxStyle.Information, "Consulta por ciudad") End If Catch ex As Exception MsgBox("Error: " & ex.message) End Try Se crea una variable clave que almacenará el nombre de la ciudad que será escrita en el objeto campobusqueda, también se crea una variable seleccion de tipo String que almacenará la instrucción SQL Select. En dicha instrucción se selecciona todos los campos de la tabla clientes (Select * from clientes), y se utiliza la cláusula where para mostrar sólo aquellos registros cuya ciudad sea igual al nombre de la ciudad escrita en el objeto campobusqueda. En un bloque Try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptador, al cual se le envía como parámetros los objetos seleccion (sentencia SQL) y conexion (cadena de conexión), 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. Se utiliza la estructura if para determinar si en el objeto tabla no se visualizaron registros, es decir, no se encontró la ciudad buscada, por lo cual se muestra el mensaje Ciudad no existe en la tabla Clientes. Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo, se visualizará la figura Si en el campo de texto se escribe cali, al pulsar el botón Buscar, se mostrará en la cuadrícula todos aquellos registros cuya ciudad sea igual a cali, como se muestra en la siguiente figura: Figura 4.12 Formulario con los registros cuya ciudad es igual a Cali. 103

104 4.1.4 Buscar registros por cualquier campo de una tabla Dentro de un proyecto llamado ConsultaCualquierCampo hacer un programa que permita realizar una búsqueda de información en la tabla clientes por cualquier campo de dicha tabla y visualizar todos los registros que cumplan la condición en un control DataGridView. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 4 Label, 1 TextBox, 1 Button, 1 DataGridView y 2 ComboBox. Figura 4.13 Interfaz de usuario (ConsultaCualquierCampo). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 4.4 Propiedades de controles proyecto ConsultaCualquierCampo. Control Propiedad Valor Label1 Text Búsqueda de registros por cualquier campo de una tabla. name titulo Font /Bold true Label2 Text Campo name txtcampo Label3 Text Operador name txtoperador Label4 Text Criterio name txtcriterio TextBox1 name valorcampo 104

105 Button1 name boton Text Consultar ComboBox1 name listacampos ComboBox2 name listaoperadores DataGridView1 Name tabla Form1 Name formulario Text Búsqueda de registros en una tabla. Figura 4.14 Interfaz de usuario modificada (ConsultaCualquierCampo). Escribir código a) Seleccione el control listacampos, busque la propiedad Items, dé clic en los tres puntos al lado de Colección y en la ventana Editor de la colección Cadena, escriba por cada línea un campo de la tabla clientes y pulse el botón Aceptar. Otra forma es dar clic sobre la flecha del control en la parte superior derecha y seleccionar la opción Editar elementos. La ventana de edición deberá quedar como se muestra en la figura: Figura 4.15 Ventana Editor del objeto listacampos. 105

106 b) Seleccione el control listaoperadores, busque la propiedad Items, dé clic en los tres puntos al lado de Colección y en la ventana Editor de la colección Cadena, escriba por cada línea los operadores: <, >=, <, >=, =, <>, luego pulse el botón Aceptar. La ventana de edición deberá quedar como se muestra en la figura: Figura 4.16 Ventana Editor del objeto listaoperadores. c) 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 d) Seleccione el objeto boton, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated Security=True" Dim clave = valorcampo.text Dim nombre_campo As String = listacampos.selecteditem.tostring Dim valoroperador As String = listaoperadores.selecteditem.tostring Dim seleccion As String = "SELECT * FROM clientes where " + nombre_campo + " " + valoroperador + "'" + clave + "'" Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try Se crean las variables: clave que almacenará el valor que esté escrito en el objeto valorcampo; nombre_campo de tipo String que almacenará el 106

107 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; también se crea una variable seleccion de tipo String que almacenará la instrucción SQL Select. En dicha instrucción se selecciona todos los campos de la tabla clientes (Select * from clientes), y se utiliza la cláusula 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 envía como parámetros los objetos seleccion (sentencia SQL) y conexion (cadena de conexión), 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 Al ejecutarse el proyecto en el entorno de desarrollo, se visualizará la figura Si se selecciona del objeto listacampos el campo nit, del objeto listaoperadores el operador >, se escribe en el objeto valorcampo 300 y se pulsa el botón Consultar, se visualizará en la cuadrícula todos aquellos registros cuyo nit sea mayor que 300, como se muestra en la siguiente figura: Figura 4.17 Formulario con los registros cuyo nit es mayor que Buscar registros mientras se escribe Desde un proyecto llamado ConsultaMientrasSeEscribe, diseñar un programa que permita realizar una búsqueda de información en la tabla clientes mientras se escribe en un campo de texto. Se debe ir mostrando en un control ListBox la (s) empresa(s) que cumplan la condición unido al campo representante. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 1 TextBox, 1 ListBox, 1 DataGridView. 107

108 Figura 4.18 Interfaz de usuario (ConsultaMientrasSeEscribe). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 4.5 Propiedades de controles proyecto ConsultaCualquierCampo. Control Propiedad Valor Label1 Text Consulta de registros mientras se escribe. name titulo Font /bold true Label2 Text Empresa a Buscar: name txtbusqueda Textbox1 name campobusqueda ListBox1 Name listaempresas DataGridView1 Name Tabla Form1 Name formulario Text Consulta de Registros. Figura 4.19 Interfaz de usuario modificada (ConsultaMientrasSeEscribe). 108

109 Escribir código 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 b) Después de la apertura de la clase formulario y antes de los procedimientos Sub, inicialice las siguientes variables u objetos globales: Public class formulario Dim tabladedatos As New DataTable. End Class Se inicializa un objeto global llamado tabladedatos al que se le asigna espacio de memoria de tipo DataTable para manipular los datos a seleccionar. c) Dé doble clic sobre el formulario para abrir el editor de código del procedimiento formulario_ Load y escriba el siguiente código: Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim seleccion As String = "SELECT empresa,representante FROM clientes" Dim adaptador As SqlDataAdapter adaptador = New SqlDataAdapter(seleccion, conexion) tabladedatos = New DataTable Try adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try A la variable seleccion de tipo String se le asigna la sentencia SQL Select. En dicha instrucción se selecciona los campos empresa y representante de la tabla clientes (Select empresa, representante from clientes). Al ejecutarse el formulario se realiza la conexión a la base de datos bdlibrovbnet.mdf de SQL Server y se visualiza en el objeto tabla los datos de los campos empresa y representante de la tabla clientes. d) Dé doble clic sobre el objeto campobusqueda para abrir el editor de código del procedimiento campobusqueda_textchanged y escriba el siguiente código: Dim filas() As DataRow Dim texto As String = campobusqueda.text Dim empresaencontrada As String = "Select empresa from clientes where empresa like'" & campobusqueda.text & "%'" filas = tabladedatos.select("empresa LIKE '" & campobusqueda.text & "%'") listaempresas.items.clear() If filas.length > 0 Then For Each filascondatos As DataRow In filas 109

110 listaempresas.items.add(filascondatos("empresa").tostring & ", " & filascondatos("representante").tostring) Next End If Se crean las variables: un arreglo llamado filas () de tipo DataRow (fila de datos) que almacenará los datos coincidentes por la búsqueda realizada; una variable llamada texto de tipo String a la cual se le asigna el contenido del objeto campobusqueda en su propiedad Text; otra variable llamada empresaencontrada de tipo String a la cual se le asigna la sentencia SQL Select. En dicha instrucción se selecciona el campo empresa de la tabla clientes (Select empresa from clientes), y se utiliza la cláusula where para seleccionar aquellos registros cuyo campo empresa comiencen (like) con el texto del objeto campobusqueda sin importar el resto de caracteres del campo empresa (%). Al arreglo filas () se le asigna la colección resultante de los registros que cumplan la condición de la propiedad Select (empresa like????% ) del objeto tabladedatos. Por otro lado, se borran todos elementos (Items) anteriores del objeto listaempresas utilizando la función clear (). Con la instrucción condicional if, se pregunta si el arreglo filas tiene una longitud (Length) mayor que cero para crear un ciclo que permita adicionar los campos empresa y representante de la tabla clientes en el objeto listaempresas utilizando la función Add de la propiedad Items. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura Si se escribe en el objeto campobusqueda el carácter c, se visualizará en el objeto listaempresas todos los registros en donde el nombre de la empresa empiecen por la letra c, como se muestra en la figura: Figura 4.20 Formulario con nombres de empresas que comienzan con c. Ahora si se escribe en el campo de texto la sílaba ca, se borrarán los elementos actuales del objeto listaempresas y se visualizarán los registros cuyo nombre de empresa empiezan por ca. 110

111 Figura 4.21 Formulario con nombres de empresas que comienzan con ca Ejecutar instrucciones SQL sobre una base de datos Dentro de un proyecto llamado ConsultarConInstruccionesSQL, crear un programa que permita escribir sentencias SQL en un campo de texto y visualizar los resultados de dicha sentencia en una cuadrícula. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 1 TextBox, 1 Button, 1 DataGridView. Figura 4.22 Interfaz de usuario (ConsultarConInstruccionesSQL). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 111

112 Tabla 4.6 Propiedades de controles proyecto ConsultarConInstruccionesSQL. Control Propiedad Valor Label1 Text Consultar una base de datos utilizando instrucciones SQL. name titulo Font /bold True Label2 Text Digite Código SQL: name texto TextBox1 name textosql Multiline true Button1 name boton Text Ejecutar DataGridView1 Name tabla Form1 Name formulario Text Consultar con SQL. Figura 4.23 Interfaz de usuario modificada (ConsultarConInstruccionesSQL). Escribir código 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 b) Dé doble clic sobre el objeto boton para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; 112

113 Integrated Security=True" Dim seleccion As String = textosql.text Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try Se crea una variable seleccion de tipo String que almacenará la sentencia SQL que será digitada en el campo de texto textosql. En un bloque Try se le asigna espacio de memoria de tipo SqlDataAdapter al objeto adaptador, al cual se le envía como parámetros los objetos seleccion (sentencia SQL) y conexion (cadena de conexión), 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 Al ejecutarse el proyecto, se visualizará la figura Si se escribe la sentencia SQL en el objeto textosql Select nit, empresa, representante from clientes where nit>300, se visualizará en el objeto tablas todos los registros donde el nit sea mayor que 300, como se muestra en la figura: Figura 4.24 Formulario con el campo nit mayor que Eliminar registros de una tabla Realizar un proyecto llamado EliminarRegistrosTabla, que permita a un usuario eliminar registros de la tabla clientes de la base de datos bdlibrovbnet.mdf y visualizar los demás registros de la tabla en una cuadrícula. 113

114 Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 3 Label, 1 TextBox, 1 Button, 1 DataGridView. Figura Interfaz de usuario (EliminarRegistrosTabla). Establecer las propiedades de los objetos de la interfaz de usuario. Establezca las siguientes modificaciones a los controles: Tabla 4.7 Propiedades de controles proyecto EliminarRegistrosTabla. Control Propiedad Valor Label1 Text Eliminar registros de la tabla clientes. name titulo Font /bold true Label2 Text Nit a Eliminar: name etiquetaeliminar Label3 Text Consultar Tabla name etiquetaconsulta TextBox1 name textoeliminar Button1 name boton Text Eliminar Registros DataGridView1 Name Tabla Form1 Name formulario Text Eliminar registros de una tabla. 114

115 Figura 4.26 Interfaz de usuario modificada (EliminarRegistrosTabla). Escribir código 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 b) Dé doble clic sobre el objeto boton para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim clave = textoeliminar.text Dim seleccion As String = "DELETE FROM clientes where nit='" + clave + "'" Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try Dim respuesta = MsgBox("Esta Seguro de Eliminar los registros con Nit =" & clave, MsgBoxStyle.YesNo, "Eliminar registros") If (respuesta = MsgBoxResult.Yes) Then adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) seleccion = "select * FROM clientes" adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Else MsgBox("Registros NO eliminados", MsgBoxStyle.Information, "Eliminar Registros") End If Catch ex As Exception MsgBox("Error: " & ex.message) End Try 115

116 Se crean las variables: clave que almacenará el valor que esté escrito en el objeto textoeliminar; seleccion de tipo String almacenará la instrucción SQL Delete. En dicha instrucción se eliminarán todos los registros de la tabla clientes (Delete from clientes) cuyo (where) campo nit sea igual al contenido del objeto clave. Si el valor de la variable respuesta es igual a Sí, se ejecutará la acción de eliminación y se visualizará en el objeto tabla los registros restantes de la tabla clientes. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura Si se escribe en el objeto textoeliminar el valor de 900 y se pulsa el botón Eliminar, se visualizará una caja de mensajes con el mensaje Esta Seguro de eliminar los registros con Nit=900. Si el usuario pulsa el botón Sí se visualizará la figura 4.28., en caso contrario se mostrará el mensaje Registros No eliminados. Figura 4.27 Formulario para eliminar registros. Figura 4.28 Formulario con el registro eliminado. 116

117 4.1.8 Actualizar registros de una tabla Realizar un proyecto llamado ActualizarRegistrosTabla, que permita a un usuario cambiar todas las ciudades cuyo nombre sea Barranquilla por Cartagena de la tabla clientes de la base de datos bdlibrovbnet.mdf y visualizar los registros de la tabla en una cuadrícula. Crear la interfaz de usuario. Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 1 TextBox, 1 Button, 1 DataGridView. Figura 4.29 Interfaz de usuario (ActualizarRegistrosTabla). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 4.8 Propiedades de controles proyecto ActualizarRegistrosTabla. Control Propiedad Valor Label1 Text Actualización del campo CIUDAD de la tabla clientes. name titulo Font /bold true Label2 Text Nueva Ciudad: name etiquetaciudad TextBox1 name textociudad Button1 name boton Text Actualizar Ciudad DataGridView1 Name tabla Form1 Name formulario Text 117 Actualizar un campo de una tabla.

118 Figura 4.30 Interfaz de usuario modificada (ActualizarRegistrosTabla). Escribir código 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 b) Dé doble clic sobre el objeto boton para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim clave = textociudad.text Dim seleccion As String = "UpDate clientes set ciudad = '" + clave + "'" + " where ciudad='" + "Barranquilla" + "'" Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try Dim respuesta = MsgBox("Esta Seguro de Actualizar los registros", MsgBoxStyle.YesNo, "Actualizar registros") If (respuesta = MsgBoxResult.Yes) Then adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) Else MsgBox("Registros NO Actualizados", MsgBoxStyle.Information, "Actualizar Registros") End If seleccion = "select * FROM clientes" adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error: " & ex.message) End Try 118

119 Se crean las variables: clave que almacenará el valor que esté escrito en el objeto textociudad; seleccion de tipo String que almacenará la instrucción SQL Update. En dicha instrucción se actualizarán todos los registros de la tabla clientes (Update clientes set ciudad) en el campo ciudad igual al contenido del objeto clave para aquellas ciudades cuyo nombre sea igual a Barranquilla. Si el valor de la variable respuesta es igual a Sí, se ejecutará la acción de actualización y se visualizará en el objeto tabla los registros de la tabla clientes. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura Si se escribe en el objeto textociudad el valor de Cartagena y se pulsa el botón Actualizar Ciudad, se visualizará una caja de mensajes con el mensaje Esta Seguro de Actualizar los registros. Si el usuario pulsa el botón Sí se visualizará la figura 4.32, en caso contrario se mostrará el mensaje Registros No Actualizados. Figura 4.31 Formulario para actualizar el campo ciudad. Figura 4.32 Formulario con la ciudad actualizada. 119

120 4.1.9 Generar un reporte de los registros de una tabla Crear un proyecto llamado InformeDatosTabla, que permita a un usuario visualizar en un formulario un reporte de todos los registros de la tabla clientes de la base de datos bdlibrovbnet.mdf. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 MicrosoftReportViewer. Figura Interfaz de usuario (InformeDatosTabla) Para acoplar el control MicrosoftReportViewer1 al formulario, pulse la flecha del lado superior derecha del objeto para ver la ventana Tareas de ReportViewer. Figura 4.34 Interfaz de usuario (InformeDatosTabla). 120

121 Seleccione la opción Acoplar en contenedor principal, se visualizará el formulario con el control acoplado como se aprecia en la siguiente figura: Figura 4.35 Control MicrosoftReportViewer acoplado al formulario. Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 4.9 Propiedades de controles proyecto InformeDatosTabla. Control Propiedad Valor MicrosoftReportViewer1 Name reporte Form1 Name formulario Text Reporte de una tabla. Figura 4.36 Interfaz de usuario modificada (InformeDatosTabla). 121

122 Diseñar el informe Para diseñar el informe, pulse la flecha del lado superior derecho del objeto reporte para ver la ventana Tareas de ReportViewer y escoja la opción Diseñar nuevo informe. Figura 4.37 Seleccionar Diseñar nuevo informe. Al seleccionar Diseñar nuevo informe, se visualizará la siguiente figura: Figura 4.38 Asistente para informes. 122

123 Dé clic en Siguiente> para ver la ventana del Asistente para la configuración de orígenes de datos. Figura 4.39 Asistente para la configuración de orígenes de datos. Seleccione el objeto Base de datos y pulse el botón Siguiente>, para visualizar la ventana de elección de la base de datos: Figura 4.40 Ventana Elegir la conexión de datos. 123

124 Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Figura 4.41 Ventana Agregar conexión. Al pulsar el botón Aceptar se visualizará nuevamente la ventana de elección de conexión de datos con la base de datos bdlibrovbnett.mdf, como se aprecia en la siguiente figura: Figura 4.42 Ventana con la base de datos seleccionada. Pulse Siguiente> para visualizar el siguiente mensaje: 124

125 Figura 4.43 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto y visualizará la ventana de guardar cadena de conexión: Figura 4.44 Ventana Guardar cadena de conexión. Cambie el nombre de la conexión que allí aparece por conexion y pulse el botón Siguiente>, se visualizará la siguiente figura: Figura 4.45 Ventana de elección de objetos de la base de datos. 125

126 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 botón Finalizar, para visualizar la figura: Figura 4.46 Asistente para informes seleccionar el origen de datos. Pulse los signos (+) para desplegar la tabla. Dé clic en Siguiente> para visualizar la ventana de selección de tipo de informe. Figura 4.47 Asistente para informes seleccionar el tipo de informe. 126

127 Seleccione la opción Tabular o Matriz y dé clic en Siguiente> para visualizar la ventana de diseño de tabla. Figura 4.48 Asistente para informes diseñar la tabla. Seleccione cada campo y pulse el botón Detalles>. Se obtendrá la siguiente figura: Figura 4.49 Diseño de la tabla con los campos seleccionados. 127

128 tabla. Dé clic en Siguiente> para visualizar la ventana de elección de diseño de la Figura 4.50 Asistente para informes elegir el diseño de la tabla. Seleccione la opción Escalonado o Bloquear y dé clic en Siguiente> para visualizar la ventana de estilo de la tabla. Figura 4.51 Asistente para informes elegir el estilo de tabla. 128

129 Seleccione la opción con el estilo que desee y dé clic en Siguiente> para visualizar la ventana de finalización del asistente de informes. Figura 4.52 Ventana de finalización del asistente de informes. Donde aparece el nombre del informe, cámbielo por Informe Clientes y dé clic en Finalizar> para visualizar el diseño final del informe. Figura 4.53 Diseño final del informe. 129

130 En este momento se podrán modificar los textos de las etiquetas de los campos, como también la longitud de los campos. Además en el explorador de soluciones se visualizará el informe agregado al proyecto. Elija la ficha de diseño del formulario y dé clic sobre la flecha del objeto reporte y seleccione la opción Elegir informe. Figura 4.54 Seleccionar opción Elegir informe. Allí escoja InformeDatosTabla.Informe Cliente.rdlc, para visualizar el formulario con los objetos conjuntodedatos, clientesbindingsource y clientestableadapter. Figura 4.55 Formulario con los objetos de manejo de datos. 130

131 Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura Por medio de la barra de herramientas se podrá desplazar hacia las diferentes hojas del reporte, así como imprimir el reporte, modificar el diseño del informe, configurar la página, cambiar el tamaño de visualización del informe y buscar texto dentro del informe. Figura 4.56 Formulario con el reporte de los registros de la tabla clientes. 4.2 Ejercicios de operaciones con tablas de una base de datos 1. Realizar un programa que permita hacer una conexión a ORACLE y visualizar los registros cuyo nit sea menor o igual a 500 en un ListView. 2. Diseñar un programa que permita eliminar los registros cuyo nombre de empresa contengan la letra e. 131

132 3. Hacer un programa que permita realizar una conexión a SQL Server y aumentar en 10 días la fecha de entrega de la tabla pedidos. 4. Crear un programa que permita realizar una conexión a una base de datos e insertar datos. Sólo se deben ingresar datos a la tabla si el nit es mayor que Realizar un programa que permita conectarse a una base de datos e imprimir en un formulario un reporte de todos los registros cuya ciudad empiece por B. 6. Crear un programa que permita desplazarse por los registros de una tabla cuya condición es que la ciudad tenga en su segundo carácter la letra A. 7. Realizar un programa que visualice en un formulario los registros de una tabla cuyo nit sea mayor que 200 y menor que Hacer un programa que permita a un usuario agregar un nuevo campo a una tabla. 9. Diseñar un programa que permita visualizar los registros que se van a eliminar de una tabla en una cuadrícula. 10. Crear un programa que permita visualizar los registros de una tabla en una cuadrícula. Cada vez que el usuario seleccione un registro se deberán mostrar en campos de texto los datos de los respectivos campos. 5. MANEJO DE RELACIONES ENTRE TABLAS EN UNA BASE DE DATOS Generalmente una base de datos contiene muchas tablas, algunas de las cuales tienen campos en común. Dichas tablas se pueden relacionar por el campo común para manipular la información de los registros de dos o más tablas. Con la relación de tablas también se puede realizar el desplazamiento y la operación de los registros de dichas tablas. Como se ha podido observar, en los capítulos anteriores se ha realizado la conexión a las bases de datos SQL Server, Access y Oracle, como también se han realizado diferentes ejemplos con SQL Server. En los siguientes ejemplos se seguirá trabajando con SQL Server y la base de datos bdlibrovbnet.mdf, la cual contiene las tablas clientes, pedidos, productos, ventas. (Se puede consultar el Anexo C, para ver la estructura de las tablas y su información). 5.1 Ejemplos de relación de tablas de una base de datos Visualizar registros de tablas relacionadas Crear un proyecto llamado RelacionarDosTablas, que permita a un usuario visualizar los campos nit, empresa, de la tabla clientes y nropedido, fechaentrega y observación de la tabla pedidos de la base de datos bdlibrovbnet.mdf en una cuadrícula. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label, 1 Button, 1 132

133 DataGridView. Figura 5.1 Interfaz de usuario (RelacionarDosTablas). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 5.1 Propiedades de controles proyecto RelacionarDosTablas Control Propiedad Valor Label1 Text Relación de las tablas clientes y pedidos de bdlibrovbnet.mdf. name titulo Font /bold true Button1 Text Ejecutar name boton DataGridView1 Name tabla Form1 Name formulario Text Relación de tablas de una base de datos. Figura 5.2 Interfaz de usuario modificada (RelacionarDosTablas). 133

134 Escribir código 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 b) Dé doble clic sobre el objeto boton para abrir el editor de código y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim seleccion As String = "SELECT clientes.nit,clientes.empresa,pedidos.nropedido, pedidos.fechaentrega, pedidos.observacíon FROM clientes INNER JOIN pedidos ON clientes.nit = pedidos.nit" Dim adaptador As SqlDataAdapter Dim tabladedatos As New DataTable Try adaptador = New SqlDataAdapter(seleccion, conexion) adaptador.fill(tabladedatos) tabla.datasource = tabladedatos Catch ex As Exception MsgBox("Error" & ex.message) End Try Se crea la variable seleccion de tipo String que almacenará una instrucción SQL. En dicha instrucción se relacionan las tablas clientes y pedidos con la cláusula INNER JOIN. Primero se seleccionan los campos que se quiere visualizar de las dos tablas (SELECT clientes.nit, clientes.empresa, pedidos.nropedido,..), con INNER JOIN se realiza la relación de estás (FROM clientes INNER JOIN pedidos) y utilizando la cláusula ON se compara el campo común entre las dos tablas, para el ejemplo el campo común es nit. 134

135 Por último se ejecuta la instrucción SQL y se rellena el objeto tabla con los registros que cumplan la condición de relación entre las tablas clientes y pedidos. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura 5.2. Si se pulsa el botón Ejecutar, se visualizarán todos los registros relacionados de las tablas clientes y pedidos. Solamente se visualizarán los registros cuyo nit de la tabla pedidos exista en la tabla clientes. Figura 5.3 Formulario con la relación de las tablas clientes - pedidos Relación de tablas utilizando dos DataGridView Crear un proyecto llamado RelacionConDataGridView, que permita a un usuario visualizar en un primer objeto DataGridView los campos de la tabla clientes y al seleccionar de dicho objeto un registro, mostrar en un segundo objeto DataGridView todos los registros relacionados con la tabla pedidos de la base de datos bdlibrovbnet.mdf. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 2 Label, 2 DataGridView. Figura 5.4 Interfaz de usuario (RelacionConDataGridView). 135

136 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 5.2 Propiedades de controles proyecto RelacionConDataGridView. Control Propiedad Valor Label1 Text Clientes name etiquetaclientes Label2 Text Pedidos name etiquetapedidos DataGridView1 Name tablaclientes DataGridView2 Name tablapedidos Form1 Name Text formulario Relación de tablas con DataGridView. Figura 5.5 Interfaz de usuario modificada (RelacionConDataGridView). 136

137 Escribir código 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 b) Dé doble clic sobre el formulario para abrir el editor de código del procedimiento formulario_ Load y escriba el siguiente código: Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim nvaconexion As New SqlConnection(conexion) Try nvaconexion.open() Dim conjuntodedatos As New DataSet Dim datosclientes As New SqlDataAdapter("select * from clientes", nvaconexion) Dim datospedidos As New SqlDataAdapter("select * from pedidos", nvaconexion) datosclientes.fill(conjuntodedatos, "clientes") datospedidos.fill(conjuntodedatos, "pedidos") nvaconexion.close() With tablaclientes.datamember = "clientes".datasource = conjuntodedatos.selectionmode = DataGridViewSelectionMode.FullRowSelect End With With conjuntodedatos.relations.add("relacion",.tables("clientes").columns("nit"),.tables("pedidos").columns("nit")) End With With tablapedidos.datasource = conjuntodedatos.datamember = "clientes.relacion".selectionmode = DataGridViewSelectionMode.FullRowSelect End With Catch ex As Exception MsgBox(ex.Message.ToString) End Try Se crea la variable nvaconexion de tipo SqlConecction que almacenará la cadena de conexión a la base de datos bdlibrovbnet.mdf de SQL Server. En un bloque Try se abre la conexión utilizando la función Open del objeto nvaconexion, además se crean los objetos conjuntodedatos al cual se le asigna espacio de memoria de tipo DataSet; datosclientes al cual se le asigna espacio de memoria de tipo SqlDataAdapter y recibe como parámetros la selección de todos los registros de la tabla clientes y el objeto nvaconexion; datospedidos al cual se le asigna espacio de memoria de tipo SqlDataAdapter y recibe como parámetros la selección de todos los registros de la tabla pedidos y el objeto nvaconexion. Por otro lado, se rellenan los objetos datosclientes y 137

138 datospedidos con el conjunto de datos y su respectiva tabla. Al objeto tablaclientes en su propiedad DataMember se le asigna el nombre de la tabla clientes, a la propiedad DataSource el conjunto de datos y a la propiedad SelectionMode se le asigna la operación de selección completa de la fila (DataGridViewSelectionMode.FullRowSelect). Utilizando la propiedad Relations y la función Add del objeto conjuntodedatos se crea un alias llamado relacion para definir la relación entre las tablas clientes y pedidos por el campo común (nit). Al objeto tablapedidos en su propiedad DataMember se le asigna la relación de las tablas (clientes.relacion), en la propiedad DataSource el conjunto de datos y en la propiedad SelectionMode se le asigna la operación de selección completa de la fila (DataGridViewSelectionMode.FullRowSelect). Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará al menos los registros de la tabla clientes. Si selecciona un registro de la primera cuadrícula se mostrarán en la segunda cuadrícula los registros relacionados entre las tablas clientes - pedidos. Figura 5.6 Relación de las tablas clientes pedidos con DataGridView Relación de tablas utilizando ComboBox Realizar un proyecto llamado RelacionConComboBox, que permita a un usuario seleccionar desde una lista desplegable el nombre de una empresa y visualizar en una cuadrícula los pedidos que ha realizado dicha empresa. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 Label, 1 ComboBox, 1 Button, 1 DataGridView. Figura 5.7 Interfaz de usuario (RelacionConComboBox). 138

139 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 5.3 Propiedades de controles proyecto RelacionConComboBox. Control Propiedad Valor Label1 Text Seleccione empresa: name etiquetaclientes Button1 Text Ver Pedidos name boton DataGridView1 Name tablapedidos ComboBox1 Name lista Form1 Name Text formulario Relación de tablas con un ComboBox. Figura 5.8 Interfaz de usuario modificada (RelacionConComboBox). 139

140 Establecer la conexión 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, selecciónelo en el cuadro de verificación y pulse el botón Aceptar.). Se visualizará la siguiente figura: Figura 5.9. Ventana Elegir la conexión de datos Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Figura 5.10 Ventana Agregar conexión. 140

141 Pulse el botón Aceptar, para visualizar nuevamente la ventana de Elegir la conexión de datos. Allí pulse Siguiente> para visualizar el siguiente mensaje: Figura 5.11 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto. Se visualizará la ventana de elección de tipo de comando: Figura 5.12 Ventana elección tipo de comando. Por omisión está seleccionada la opción Usar instrucciones SQL. Pulse Siguiente> para visualizar la ventana de generación de instrucciones SQL. Figura 5.13 Ventana Generar las instrucciones SQL. 141

142 Aquí se puede realizar la selección de los datos que debería cargar el adaptador de datos. Una forma es escribir en la ventana instrucciones SQL y la otra es pulsar el botón Generador de consultas. Para el ejemplo se pulsará el botón y se visualiza la siguiente figura: Figura 5.14 Ventana Generador de consultas. Seleccione la tabla clientes, pulse el botón Agregar y luego el botón Cerrar, se visualizará la siguiente figura: Figura 5.15 Generador de consultas con la tabla clientes. 142

143 En esta nueva ventana seleccione la opción * (todas las columnas) o los campos que desea visualizar (si desea visualizar la consulta seleccionada pulse el botón Ejecutar consulta). Se obtendrá la siguiente figura: Figura 5.16 Generador de consultas con los campos seleccionados (tabla clientes). Pulse el botón Aceptar, y se visualizará la siguiente figura: Figura 5.17 Generador de consultas con la instrucción SQL. 143

144 Al pulsar el botón Finalizar, se crearán los objetos: SqlDataAdapter1 y SqlConnection1. Cambie el nombre de dichos objetos por datosclientes y conexioncliente respectivamente. Ahora seleccione nuevamente el control SqlDataAdapter de la ficha Datos y realice los mismos pasos que se dieron anteriormente, pero esta vez seleccione la tabla pedidos y cambie los nombres de los objetos SqlDataAdapter1 y sqlconnection1 por datospedidos y conexionpedidos. Se visualizará la siguiente figura: Figura 5.18 Formulario con los objetos SqlDataAdapter y sqlconnection. Seleccione la opción Generar Conjunto de Datos del menú Datos y se mostrará el siguiente cuadro de diálogo: 144

145 Figura 5.19 Ventana Generar conjunto de datos. Elija la opción Nuevo y cambie el nombre DataSet1 por conjuntodedatos, deshabilite el cuadro de verificación pedidos (datospedidos) y pulse el botón Aceptar para agregar el conjunto de datos a la aplicación, como muestra la figura: Figura 5.20 Formulario con el objeto conjuntodedatos. Escribir código a) Antes de la apertura de la clase formulario se debe importar el siguiente espacio 145

146 de nombres: Imports System.Data.SqlClient Public Class formulario End Class b) Después de la apertura de la clase formulario y antes de los procedimientos sub, inicialice las siguientes variables u objetos globales: Public class formulario Dim vistapedidos As DataView ::::::::: End class Se inicializa un objeto global llamado vistapedidos de tipo DataView para obtener una vista de los datos. c) Dé doble clic sobre el formulario para abrir el editor de código del procedimiento formulario_ Load y escriba el siguiente código: datosclientes.fill(conjuntodedatos, "clientes") datospedidos.fill(conjuntodedatos, "pedidos") lista.datasource = conjuntodedatos.tables("clientes") lista.displaymember = conjuntodedatos.tables("clientes").columns(1).tostring lista.valuemember = conjuntodedatos.tables("clientes").columns(0).tostring vistapedidos = conjuntodedatos.tables("pedidos").defaultview Se rellenan los objetos datosclientes y datospedidos con el conjunto de datos y su respectiva tabla. Al objeto lista en su propiedad DataSource se le asigna la tabla clientes del conjunto de datos, a la propiedad DisplayMember se le asigna el valor del segundo campo de la tabla clientes (columna uno (1) empresa) y a la propiedad ValueMember se le asigna el valor del primer campo de la tabla clientes (columna cero (0) - nit). Por último al objeto vistapedidos se le asigna la tabla pedidos del conjunto de datos y utilizando la propiedad DefaultView se personaliza la vista de los datos. d) Dé doble clic sobre el objeto boton para abrir el editor de código y escriba el siguiente código: Dim datoempresa As String = lista.selectedvalue vistapedidos.rowfilter = "nit = '" & datoempresa & "'" tablapedidos.datasource = vistapedidos Se inicializa una variable llamada datoempresa de tipo String que almacenará lo seleccionado en el objeto lista por intermedio de la propiedad SelectedValue. Se utiliza la propiedad RowFilter del objeto vistapedidos para filtrar los registros por el campo nit de acuerdo con el valor de la variable datoempresa. Por último se asigna a la propiedad DataSource del objeto tablapedidos el contenido del objeto vistapedidos. e) Dé doble clic sobre el objeto lista para abrir el editor de código del procedimiento lista_selectedindexchanged y escriba el siguiente código: 146

147 tablapedidos.datasource = Nothing Utilizando la palabra clave nothing se libera en memoria el contenido que tenga la propiedad DataSource del objeto tablapedidos. Ejecutar el proyecto Al ejecutarse el proyecto se visualizará la figura 5.8, mostrándose en el objeto lista el primer nombre de empresa de la tabla clientes (si se desea ver los nombres de empresas ordenados alfabéticamente, cambie el valor de la propiedad sorted del objeto lista por true). Si selecciona un nombre de empresa y se pulsa el botón Ver Pedidos, se visualizará en la cuadrícula todos los registros que estén relacionados con la tabla pedidos. Figura 5.21 Relación de las tablas clientes pedidos con DataGridView Reporte con tablas relacionadas Realizar un proyecto llamado ReporteTablasRelacionadas, que permita a un usuario visualizar en un formulario un reporte de todos los registros relacionados de las tablas clientes pedidos de la base de datos bdlibrovbnet.mdf. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 1 MicrosoftReportViewer. Figura 5.22 Interfaz de usuario (ReporteTablasRelacionadas). 147

148 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 5.4 Propiedades de controles proyecto ReporteTablasRelacionadas. Control Propiedad Valor MicrosoftReportViewer1 Name reporte Name formulario Form1 Text Reporte con tablas relacionadas. Figura 5.23 Interfaz de usuario modificada (ReporteTablasRelacionadas). Del menú Ver seleccione la opción Explorador de servidores, para visualizar 148

149 la siguiente figura: Figura 5.24 Ventana Explorador de servidores. Al pulsar el icono conectar con bases de datos Agregar conexión como muestra la figura:, se visualizará lá ventana de Figura 5.25 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Se visualizará la siguiente figura: Figura 5.26 Ventana con la base de datos seleccionada. 149

150 Pulse el boton Aceptar, para observar la siguiente figura: Figura 5.27 Base de datos seleccionada en el Explorador de servidores. Dé clic en el signo (+) al lado del nombre de la base de datos para visualizar la estructura definida en la base de datos. Seleccione la carpeta vistas y dé clic derecho para ver en el menú contextual la opción Agregar nueva vista, selecciónela para visualizar la ventana Agregar tabla. Figura 5.28 Ventana Agregar tabla. 150

151 Agregue las tablas clientes, pedidos y pulse el botón Cerrar. Por otro lado, de la tabla clientes seleccione los campos nit, empresa, representante y de la tabla pedidos nropedido, fechaentrega, fechavence, observacíon. Se obtendrá la siguiente figura: Figura 5.29 Vista con las tablas clientes pedidos. Cierre la ventana de la vista guardar el cambio de la vista. (parte superior derecha), para ver la ventana de Figura 5.30 Ventana guardar cambio de la vista. 151

152 Dé clic sobre el botón Sí, para elegir el nombre de la vista. Figura 5.31 Ventana elegir nombre vista. Escriba como nombre de la vista tablasrelacionadas y pulse el botón Aceptar, para guardar la vista en la base de datos. Figura 5.32 Base de Datos con la vista tablasrelacionadas. 152

153 Elija la ficha de diseño del formulario y dé clic sobre la flecha del objeto reporte y seleccione la opción Diseñar nuevo informe. Figura 5.33 Seleccionar opción Diseñar nuevo informe del objeto reporte. Al seleccionar dicha opción se visualizará la ventana del asistente de informes. Figura 5.34 Asistente para informes. 153

154 Dé clic en Siguiente, para ver la ventana de configuración de orígenes de datos. Figura 5.35 Asistente para la configuración de orígenes de datos. Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Figura 5.36 Ventana con la base de datos seleccionada. 154

155 Pulse Siguiente> para visualizar el siguiente mensaje: Figura 5.37 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el proyecto y visualizará la ventana de guardar cadena de conexión: Figura 5.38 Ventana Guardar cadena de conexión. Cambie el nombre de la conexión que allí aparece por conexion y pulse el botón Siguiente>, se visualizará la siguiente figura: 155

156 Figura 5.39 Ventana de elección de objetos de la base de datos. Pulse el signo (+) al lado de Vistas para desplegar las vistas actuales de la base de datos, seleccione la vista tablasrelacionadas. Por otro lado, cambie el nombre del DataSet que allí aparece por conjuntodedatos y pulse el botón Finalizar, para visualizar la figura 5.40: Figura 5.40 Asistente para informes seleccionar el origen de datos. 156

157 Pulse los signos (+) para desplegar la vista. Dé clic en Siguiente> para visualizar la ventana de selección de tipo de informe. Figura 5.41 Asistente para informes seleccionar el tipo de informe. Seleccione la opción Tabular o Matriz y de clic en Siguiente> para visualizar la ventana de diseño de tabla. Figura 5.42 Asistente para informes diseñar la tabla. 157

158 Seleccione los campos nit, empresa, representante y sitúelos en la casilla Grupo>, el resto de campos en la casilla Detalles>. Se observará la siguiente figura: Figura 5.43 Diseño de la tabla con los campos seleccionados. tabla. Dé clic en Siguiente> para visualizar la ventana de elección de diseño de la Figura 5.44 Asistente para informes elegir el diseño de la tabla. 158

159 Seleccione la opción Escalonado o Bloquear y si desea incluir subtotales o no. Dé clic en Siguiente> para visualizar la ventana de estilo de la tabla. Figura 5.45 Asistente para informes elegir el estilo de tabla. Seleccione la opción con el estilo que desee y dé clic en Siguiente> para visualizar la ventana de finalización del asistente de informes. Figura 5.46 Ventana de finalización del asistente de informes. 159

160 Donde aparece el nombre del informe cámbielo por Informe Clientes - Pedidos y dé clic en Finalizar> para visualizar el diseño final del informe. Figura 5.47 Diseño final del informe. En este momento se podrán modificar los textos de las etiquetas de los campos, como también la longitud de los campos. Además en el explorador de soluciones se visualizará el informe agregado al proyecto. Elija la ficha de diseño del formulario y dé clic sobre la flecha del objeto reporte y seleccione la opción Elegir informe. Figura 5.48 Seleccionar opción Elegir informe. Allí escoja ReporteTablasRelacionadas.Informe Clientes-Pedidos.rdlc, para visualizar el formulario con los objetos conjuntodedatos, tablasrelacionadasbindingsource y tablasrelacionadastableadapter. 160

161 Figura 5.49 Formulario con los objetos de manejo de datos. Ejecutar el proyecto Al ejecutarse el proyecto, se visualizará la figura Por medio de la barra de herramientas se podrá desplazar hacia las diferentes hojas del reporte, así como imprimir el reporte, modificar el diseño del informe, configurar la página, cambiar el tamaño de visualización del informe y buscar texto dentro del informe. Figura 5.50 Formulario con el reporte de la relacion clientes- pedidos. 161

162 5.2 Ejercicios de relación de tablas 1. Realizar un programa que permita hacer una relación entre tres tablas de una base de datos en SQL Server. 2. Diseñar un programa que permita realizar una relación entre dos tablas con un filtro por el campo común. 3. Hacer un programa que permita visualizar en un reporte los registros de una relación de tres tablas. 4. Crear un programa que permita realizar una relación de tres tablas; para la primera relación se deben seleccionar los datos desde un ListBox y visualizarlos en un DataGridView. Desde este se debe seleccionar un registro y mostrar los registros de la segunda relación en un segundo DataGridView. 5. Elaborar un programa que permita realizar una relación de tres tablas y los registros se deben mostrar en tres DataGridView. 6. Realizar un programa que permita visualizar un reporte de los registros relacionados cuyos nit sean mayores que Hacer un programa que permita visualizar un reporte de los registros relacionados cuyas empresas empiecen por la letra C. 8. Diseñar un programa que permita realizar y mostrar en un TreeView los registros relacionados de tres tablas. 9. Crear un programa que permita mostrar en un TreeView los registros relacionados de dos tablas cuyo nombre de empresa contenga la letra O. 10. Elaborar un programa que permita realizar un reporte con registros relacionados utilizando CrystalReportViewer. 162

163 6. MANEJO DE ARCHIVOS CON ASP.NET ASP.NET es un marco de trabajo de programación que se ejecuta desde un servidor Web que genera y administra dinámicamente formularios Web. ASP.NET ofrece varias ventajas importantes: Mejor rendimiento. ASP.NET es un código de Common Language Runtime compilado que se ejecuta en el servidor. ASP.NET aprovecha las ventajas del enlace anticipado, la compilación just-in-time, la optimización nativa y los servicios de caché desde el primer momento. Compatibilidad con herramientas de primer nivel. El marco de trabajo de ASP.NET se complementa con un diseñador y una caja de herramientas muy completos en el entorno integrado de programación (Integrated Development Environment, IDE) de Visual Studio. Eficacia y flexibilidad. Debido a que ASP.NET se basa en Common Language Runtime, la eficacia y la flexibilidad de toda esa plataforma se encuentra disponible para los programadores de aplicaciones Web. La biblioteca de clases de.net Framework, la Mensajería y las soluciones de acceso a datos se encuentran accesibles desde el Web de manera uniforme. Simplicidad. El marco de trabajo de página de ASP.NET permite generar interfaces de usuario que separan claramente la lógica de aplicación del código de presentación, y controlar eventos en un sencillo modelo de procesamiento de formularios de tipo Visual Basic.NET. Facilidad de uso. ASP.NET emplea un sistema de configuración jerárquico, basado en texto, que simplifica la aplicación de la configuración al entorno de servidor y las aplicaciones Web. Debido a que la información de configuración se almacena como texto sin formato, se puede aplicar la nueva configuración sin ayuda de herramientas de administración local. Escalabilidad y disponibilidad. ASP.NET se ha diseñado teniendo en cuenta la escalabilidad, con características diseñadas específicamente a medida, con el fin de mejorar el rendimiento en entornos agrupados y de múltiples procesadores. Posibilidad de personalización y extensibilidad. ASP.NET presenta una arquitectura bien diseñada que permite a los programadores insertar su código en el nivel adecuado. Seguridad. Con la autenticación de Windows integrada y la configuración por aplicación, se puede tener la completa seguridad de que las aplicaciones están a salvo. 6.1 Manejo de Archivos de texto con ASP.NET. Como se vio en el Capítulo 1, Visual Basic.NET permite interactuar con datos externo a un proyecto, realizar las diferentes operaciones con archivos de texto plano, como son: la creación, eliminación, sobreescritura de archivos, así como guardar, leer o adicionar información a éstos, además importar o exportar información desde y hacia Visual 163

164 Basic.NET. Con ASP.NET y trabajando en el entorno integrado de desarrollo de Visual Studio 2008 también es posible desde formularios Web realizar estas operaciones con archivos de texto plano. Para procesar archivos se hace necesario el uso del espacio de nombres System.IO. El espacio de nombres System.IO contiene enumeraciones para la apertura de archivos, el acceso a los archivos y el uso compartido de archivos, además de clases para las operaciones de rutas de acceso y la manipulación de flujos de datos. 6.2 Ejemplos de manejo de archivos con ASP.NET Cargar archivo con el control FileUpLoad. Crear un sitio Web FileUpLoadArchivoTexto y realizar un programa que permita a un usuario cargar un archivo en un formulario Web y guardar dicho archivo en el sitio Web, utilizando el control FileUpLoad. NOTA: Si lo considera necesario puede revisar el Anexo B, donde se explica brevemente la creación, la interfaz de usuario, el establecimiento de propiedades de los controles, la escritura de código y la ejecución de un nuevo sitio Web. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario Web en la posición deseada: 1 Label, 1 TextBox, 1 Button, 1 FileUpLoad. Figura 6.1 Interfaz de usuario (FileUpLoadArchivoTexto). 164

165 Establecer las propiedades de los objetos de la interfaz de usuario. Establezca las siguientes modificaciones a las propiedades en los controles: Tabla 6.1 Propiedades de los controles del sitio Web FileUpLoadArchivoTexto. Control Propiedad Valor Label1 id titulo Text Cargar Archivo en un Formulario Web. Font - Bold true TextBox1 id texto Text En blanco TextMode Multiline Button1 id boton Text Cargar Archivo FileUpLoad1 id cargadorarchivos Form1 id formulario Document Title Cargar Archivo en Formulario Web. Default.aspx.vb Nombre de archivo (dé clic derecho sobre la página). pagina.aspx.vb La interfaz de usuario queda como se muestra en la siguiente figura: Figura 6.2 Controles con propiedades modificadas (FileUpLoadArchivoTexto). NOTA: Si no se puede modificar el ancho, el alto o la posición de un objeto, seleccione dicho objeto y del menú Formato escoja la opción Posición y allí en el Estilo de ubicación señale el cuadro con el rótulo de nombre Relativo para poder movilizar o cambiar de tamaño el objeto escogido. 165

166 Escribir código a) Seleccione el objeto boton, dé doble clic para abrir el editor de código botonguardar_click y escriba el siguiente código: Try If cargadorarchivos.hasfile Then If (cargadorarchivos.filebytes.length > 0) Then texto.text = texto.text & "Tipo de Contenido del Archivo: " & cargadorarchivos.postedfile.contenttype & vbcrlf texto.text = texto.text & "Tamaño de archivo: " & cargadorarchivos.postedfile.contentlength & vbcrlf texto.text = texto.text & "Nombre del archivo: " & cargadorarchivos.filename & vbcrlf cargadorarchivos.saveas(mappath("./" & cargadorarchivos.filename)) texto.text = texto.text & "El archivo se guardará en: " & MapPath("./") & vbcrlf texto.text = texto.text & "La informacion del archivo es:" & cargadorarchivos.filecontent.readbyte End If Else MsgBox("No se ha seleccionado archivo", MsgBoxStyle.Critical, "Cargar Archivo") End If Catch ex As Exception MsgBox("Error:" & ex.message, MsgBoxStyle.Critical) End Try Dentro del bloque Try se pregunta si el objeto cargadorarchivos (FileUpLoad) tiene escrito en el campo de texto un nombre de archivo utilizando el método HasFile. Si la respuesta es verdadera, se determina si la longitud del archivo es mayor que cero utilizando el método Length de la propiedad FileBytes del objeto cargadorarchivos para visualizar en el objeto texto el tipo de contenido del archivo por medio de la función ContentType de la propiedad PostedFile, el nombre del archivo (FileName), la ruta donde se guardará el archivo que se ha cargado (MapPath (./ ), el contenido del archivo se mostrará en formato byte por intermedio de la función ReadByte de la propiedad FileContent. Si por el contrario no se ha escrito en el campo de texto del objeto cargadorarchivos, se mostrará el mensaje No se ha seleccionado archivo. En el bloque Catch si se genera algún error, se mostrará un mensaje. Ejecutar la aplicación Web Para ejecutar el proyecto pulse la tecla F5 o el icono figura:, se visualizará la siguiente 166

167 Figura 6.3 Ejecución del sitio Web FileUpLoadArchivoTexto. Pulse el botón Examinar, seleccione cualquier archivo de texto y luego pulse el botón Cargar Archivo para visualizar la información relativa al archivo, así como la ruta en donde está guardado dicho archivo; se obtendría una figura similar a la siguiente: Figura 6.4 Formulario Web con la información del archivo seleccionado. 167

168 6.2.2 Manejo de archivos de texto con StreamWriter y StreamReader. Crear un sitio Web llamado GuardarLeerArchivodeTexto y hacer un programa que permita a un usuario guardar información en un archivo de texto plano, así como leer dicha información, utilizando las clases StreamWriter y StreamReader. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 1 Label, 1 TextBox, 2 Button. Figura 6.5 Interfaz de usuario (GuardarLeerArchivodeTexto). Establecer las propiedades de los objetos de la interfaz de usuario Para el caso del ejemplo establezca las siguientes modificaciones a los controles: Tabla 6.2 Propiedades de los controles del sitio web GuardarLeerArchivodeTexto. Control Propiedad Valor Label1 id titulo Text Guardar y Leer un archivo de texto. Font Bold true TextBox1 id texto Text En blanco TextMode Multiline Button1 id botonguardar Text Guardar Información Button2 id botonabrir Text Leer Información Form1 id formulario Document Title Guardar/leer archivo de texto Default.aspx.vb Nombre de archivo (dé clic derecho sobre la página). pagina.aspx.vb 168

169 La interfaz de usuario queda como se muestra en la siguiente figura: Figura 6.6 Interfaz de usuario modificada (GuardarLeerArchivodeTexto). Escribir código a) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: Try Dim miruta As String = Server.MapPath("./miarchivo.txt") Dim archivo As New System.IO.StreamWriter(miruta) archivo.write(texto.text) archivo.close() texto.text = "" MsgBox("Información guardada...", MsgBoxStyle.Information, "Guardar en archivo") Catch ex As Exception MsgBox("No se pudo guardar la informacion", MsgBoxStyle.Critical, "Guardar en archivo") End Try Se definen las variables miruta de tipo String, la cual se inicializa con la ruta física del archivo miarchivo.txt que se guardará en la misma carpeta del sitio Web y que corresponde a la ruta de acceso virtual al servidor Web, utilizando la función MapPath de la propiedad Server del espacio de nombres System.Web.HttpServerUtility; la variable archivo asignándosele un espacio de memoria de tipo System.IO.StreamWriter (), a la cual se le envía como parámetro la ruta y el nombre del archivo (miruta). Utilizando el método Write se escribe el contenido del objeto texto en el archivo. Por otro lado, se cierra el archivo utilizando el método close () y se limpia el objeto texto. Además se muestra un mensaje confirmando la acción realizada. b) Seleccione el objeto botonleer, dé doble clic para abrir el editor de código y escriba el siguiente código: Try Dim miruta As String = Server.MapPath("./miarchivo.txt") 169

170 Dim archivo As New System.IO.StreamReader(miruta) texto.text = archivo.readtoend archivo.close() Catch ex As Exception MsgBox("No se pudo leer la informacion", MsgBoxStyle.Critical, Guardar archvo ) End Try Se definen las variables miruta de tipo String, la cual se inicializa con la ruta física del archivo miarchivo.txt que se guardará en la carpeta del nombre del sitio Web y que corresponde a la ruta de acceso virtual al servidor Web, utilizando la función MapPath de la propiedad Server del espacio de nombres System.Web.HttpServerUtility; la variable archivo asignándosele un espacio de memoria de tipo System.IO.StreamReader (). Utilizando el método ReadToEnd se lee el contenido del archivo y se le asigna al objeto texto. Por último se cierra el archivo. Ejecutar la aplicación Web Al ejecutarse el proyecto en el entorno de desarrollo de Visual Web Developer/2008, se visualizará la ventana de depuración. Figura 6.7 Ventana de Depuración. Seleccione la opción Modificar el archivo Web.config para habilitar la depuración y pulse el botón Aceptar. Se visualizará la figura 6.8. Al digitar el texto guardando información en el archivo de texto, el formulario Web presentaría el siguiente aspecto: Figura 6.8 Ejecución Pagina Web (GuardarLeerArchivodeTexto). 170

171 Si se pulsa el botón Guardar información, se limpia el objeto texto y se mostrará una caja de mensajes reportando que la información ha sido guardada y en la carpeta donde se guardó el sitio Web ya se debe encontrar el archivo de texto con la información adicionada. Al pulsar el boton Leer información se mostrará en el objeto texto la información del archivo de texto. Figura 6.9 Mensaje de información guardada en el archivo de texto Guardar /Leer Archivo de texto con FileSystem Crear un sitio Web llamado FileSystem y hacer un programa que permita a un usuario guardar información en un archivo de texto plano, leer la información de este utilizando la clase FileSystem. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 1 Label, 1 TextBox, 2 Button. Figura 6.10 Interfaz de usuario (FileSystem) Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 171

172 Tabla 6.3 Propiedades de los controles del sitio Web FileSystem. Control Propiedad Valor Label1 id titulo Text Guardar Leer archivo de texto con FileSystem. Font - Bold true TextBox1 id texto Text En blanco TextMode Multiline Button1 id botonguardar Text Guardar en archivo Button2 id botonleer Text Leer de Archivo Document Title Guardar/Leer Archivo de Texto. Form1 id formulario Default.aspx.vb Nombre de pagina.aspx.vb archivo. La interfaz de usuario queda como se muestra en la siguiente figura: Figura 6.11 Interfaz de usuario modificada (FileSystem). Escribir código a) Seleccione el objeto botonguardar, dé doble clic para abrir el editor de código y escriba el siguiente código: Try Dim archivolibre As Integer = FreeFile() FileSystem.FileOpen(archivolibre, MapPath("./archivodetexto.txt"), OpenMode.Output) FileSystem.PrintLine(archivolibre, texto.text) 172

173 FileSystem.FileClose(archivolibre) texto.text = "" MsgBox("Informacion guardada en archivo", MsgBoxStyle.Information, "Guardar archivo") Catch ex As Exception MsgBox("La Informacion no fue guardada en archivo" & ex.message, MsgBoxStyle.Critical, "Guardar archivo") End Try En el anterior código se crea una variable archivolibre de tipo Integer a la que se le asigna el valor numérico del archivo libre por intermedio de la función FreeFile. Por otro lado, se utiliza la función FileOpen de la clase FileSystem que recibe como parámetros: archivolibre, valor numérico del archivo libre; MapPath (./ ) que corresponde a la ruta de acceso virtual al servidor Web; OpenMode.OutPut, modo de apertura del archivo (salida). Con el método PrintLine se imprime el contenido del objeto texto, luego se limpia dicho objeto y por último se cierra el archivo con la función FileClose. Además se visualizará el mensaje Información guardada en archivo. b) Seleccione el objeto botonabrir, de doble clic para abrir el editor de código y escriba el siguiente código: Try Dim archivolibre As Integer = FreeFile() FileSystem.FileOpen(archivolibre, MapPath("./archivodetexto.txt"), OpenMode.Input) Dim linea As String Do Until EOF(archivolibre) linea = FileSystem.LineInput(archivolibre) texto.text = texto.text & linea & vbcrlf Loop FileSystem.FileClose(archivolibre) Catch ex As Exception MsgBox("La Informacion no fue leida" & ex.message, MsgBoxStyle.Critical, "Leer archivo") End Try Se utiliza la función FileOpen de la clase FileSystem que recibe como parámetros: archivolibre, valor numérico del archivo libre; MapPath (./ ) que corresponde a la ruta de acceso virtual al servidor Web; OpenMode.InPut, modo de apertura del archivo (entrada). Se define una variable llamada linea de tipo String, la cual servirá para guardar cada línea del archivo. Por otro lado, se crea un ciclo (Do Until Loop) que recorrerá el archivo hasta el final (EOF) línea por línea y utilizando el método LineInput de la clase FileSystem se le asignará dicha información al objeto texto, por último se cierra el archivo. Ejecutar la aplicación Web Al ejecutarse el sitio Web se visualizará en el explorador la figura Al escribir guardando información en el archivo para leer después utilizando el botón leer de archivo en el objeto texto, el formulario Web con la información quedaría de la siguiente forma: 173

174 Figura 6.12 Formulario Web con información para ser guardada. Al pulsar el botón Guardar en archivo, se guardará dicha información en el archivo archivodetexto.txt en la ruta del sitio Web y el objeto texto quedará en blanco. Se visualizará el mensaje Información guardada en archivo. Si se pulsa el botón Leer de Archivo, se leerá el contenido del archivo de texto y se mostrará la información en el objeto texto. Figura 6.13 Mensaje de información guardada. 174

175 6.3 Ejercicios de archivos de texto con ASP.NET 1. Hacer un sitio Web que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando la clase FileSystem. 2. Crear un sitio Web que permita guardar 10 datos y leerlos en un archivo de texto plano utilizando las clases StreamWriter y StreamReader. 3. Diseñar un sitio Web que permita cargar archivos sólo de extensión.doc utilizando FileUpLoad. 4. Hacer un sitio Web que permita adicionar información a un archivo de texto previamente creado. 5. Diseñar un sitio Web que permita importar todos los datos que existan en un archivo de Excel y visualizarlos en un GridView (apóyese en los ejemplos del capítulo 1). 6. Elaborar un sitio Web que permita importar todos los datos que existan en un archivo de Excel y visualizarlos en un DataList (apóyese en los ejemplos del capítulo 1). 7. Hacer un sitio Web que permita exportar un rango de datos a una tabla de Word (apóyese en los ejemplos del capítulo 1). 8. Crear un sitio Web que permita importar los datos de un archivo de texto a un GridView (apóyese en los ejemplos del capítulo 1). 9. Diseñar un sitio Web que permita exportar los datos de un control DataList a Excel (apóyese en los ejemplos del capítulo 1). 10. Realizar un sitio Web que permita exportar los datos de un GridView a Word (apóyese en los ejemplos del capítulo 1). 175

176 7. BASE DE DATOS CON ASP.NET Con los proyectos Windows Forms se logró manipular diferentes bases de datos, como fue realizar la conexión a las bases de datos SQL Server, Access y Oracle, el desplazamiento entre los registros de una tabla, las operaciones entre una o más tablas, la creación de reportes de una o más tablas utilizando la tecnología ADO.NET. Con ASP.NET también es posible realizar dicha manipulación en diversas bases de datos utilizando los diferentes controles de los formularios Web para el manejo de datos. Para trabajar con bases de datos y ASP.NET se debe tener en cuenta la conceptualización sobre bases de datos y el manejo del lenguaje de consulta estructurado SQL realizada en el Capítulo 2. En este capítulo se crearán ejemplos que permitan utilizar los diferentes controles Web para conectarse, desplazarse, realizar operaciones con una o más tablas de la base de datos bdlibrovbnet.mdf de SQL Server y sus tablas clientes, pedidos, productos y ventas (Ver anexo C). Por otro lado, si lo considera necesario puede revisar el Anexo B, donde se explica brevemente la creación, la interfaz de usuario, el establecimiento de propiedades de los controles, la escritura de código y la ejecución de un nuevo sitio Web. 7.1 Ejemplos de manipulación de bases de datos con ASP.NET Pagina Web con los campos de una tabla Dentro de un sitio Web llamado WebCamposTabla, realizar un programa que permita visualizar en una caja de texto la estructura de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 1 Button, 1 TextBox y 1 Label. Figura 7.1 Interfaz de usuario (WebCamposTabla). 176

177 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 7.1 Propiedades de controles proyecto WebCamposTabla. Control Propiedad Valor Label1 id titulo Text Estructura de la tabla clientes. Font - Bold true TextMode Multiline TextBox1 id texto Text blanco Button1 id boton Text Ver Estructura Form1 id formulario Document title Estructura de la tabla clientes de SQL Server, Default.aspx.vb Nombre de archivo. pagina.aspx.vb La interfaz de usuario queda como se muestra en la siguiente figura: Figura 7.2 Interfaz de usuario modificada (WebCamposTabla). Escribir código 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 177

178 Los espacios de nombres System.Data y System.Data.SqlClient son necesarios para utilizar las diferentes clases que permitan las operaciones con bases de datos en una aplicación Web, en este caso SQL Server. b) Seleccione el objeto boton, dé doble clic para abrir el editor de código y escriba el siguiente código: Dim conexion As String = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet; Integrated Security=True" Dim datostabla As DataTable Dim datoscolumna As DataColumn Dim conjuntodedatos As New DataSet() Dim seleccion As New SqlDataAdapter("SELECT * FROM clientes", conexion) seleccion.fill(conjuntodedatos, "Clientes") seleccion = Nothing Dim consulta As String = "" consulta += "Conexión establecida: " & conexion & vbcrlf & vbcrlf For Each datostabla In conjuntodedatos.tables consulta += "Estructura de la Tabla: " & datostabla.tablename & vbcrlf & vbcrlf For Each datoscolumna In datostabla.columns consulta += datoscolumna.columnname & vbtab & "(" & datoscolumna.datatype.name & ")" & vbcrlf Next Next texto.text = (consulta) Se crea una variable llamada conexion que contendrá la cadena de conexión a la base de datos de SQL Server. La cadena de conexión debe contener como mínimo los siguientes parámetros: Data Source: se le asigna la ruta donde se encuentra el servidor SQL Server, en este caso, SQL Server se instaló en el computador de trabajo por lo cual el nombre del servidor es localhost o como dirección IP Database: se le asigna el nombre de la base de datos a la que se quiere conectar. Integrated Security: se le asigna true o false para determinar si la seguridad es integrada o no. Luego se crean los siguientes objetos: datostabla de tipo DataTable; datoscolumna de tipo DataColumn; conjuntodedatos con asignación de espacio de memoria de tipo DataSet; seleccion de tipo SqlDataAdapter a la cual se le asigna la sentencia SQL (Select * From Clientes) y la cadena de conexión (conexion), luego se rellena (fill) el objeto selección con el conjunto de datos y el nombre de la tabla, como también se libera dicho objeto (nothing). Por otro lado, se crea una variable llamada consulta de tipo String que almacenará la cadena de conexión y la estructura de la tabla. Además se crea un ciclo externo que recorrerá las tablas que contenga el objeto conjuntodedatos en su propiedad Tables (en este caso solamente estará la tabla clientes) y se asignará a la variable consulta el texto Estructura de la Tabla: concatenado con el nombre de la tabla (TableName). En un segundo ciclo se recorrerá cada uno de los campos de la tabla seleccionada y se adicionará a la variable consulta el nombre del campo utilizando la propiedad ColumnName del objeto 178

179 datoscolumna y el nombre del tipo de dato de dicho campo (DataType.Name), por último se muestra en el objeto texto el contenido de la variable consulta. Ejecutar la aplicación Web Al ejecutarse la aplicación Web, se visualizará la figura 7.3: Figura 7.3 Ejecución sitio del Web WebCamposTabla. Al pulsarse el botón Ver Estructura se visualizará la cadena de conexión, los campos y el tipo de dato de la tabla clientes, como se aprecia en la siguiente figura: Figura 7.4 Pagina Web con la estructura de la tabla clientes. 179

180 7.1.2 Conexión a una base de datos desde un Formulario Web Dentro de un sitio Web llamado ConexionBDWebSQLServer, crear un programa que permita a un usuario realizar una conexión a una base de datos de SQL Server y mostrar los datos de una tabla llamada clientes en un objeto GridView, utilizando código de Visual Basic.NET. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 2 Label y 1 GridView. Figura 7.5 Interfaz de usuario (ConexionBDWebSQLServer). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 7.2 Propiedades de controles proyecto ConexionBDWebSQLServer. Control Propiedad Valor GridView1 id tabla Label1 id titulo Text Conexión a una base de datos de SQL SERVER tabla clientes. Font - Bold true Label2 id etiquetaregistros Text blanco Font - Bold True Form1 id formulario Document title Conexión a una base de datos Default.aspx.vb Nombre de archivo. pagina.aspx.vb 180

181 La interfaz de usuario queda como se muestra en la siguiente figura: Figura 7.6 Interfaz de usuario modificada (ConexionBDWebSQLServer). Escribir código 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 Los espacios de nombres System.Data y System.Data.SqlClient son necesarios para utilizar las diferentes clases que permitan las operaciones con bases de datos, en este caso SQL Server. b) Dé doble clic sobre la página para abrir el editor de código del procedimiento Page_Load y escriba el siguiente código: Dim conexion As String conexion = "Data Source=(local)\SQLEXPRESS;Database=bdlibrovbnet;Integrated Security=True" Dim seleccion As String = "SELECT * FROM clientes" Dim adaptadordedatos As SqlDataAdapter Dim tabladedatos As New DataTable Try adaptadordedatos = New SqlDataAdapter(seleccion, conexion) adaptadordedatos.fill(tabladedatos) tabla.datasource = tabladedatos 181

182 tabla.databind() etiquetaregistros.text= Total de Registros: & talabdedatos.rows.count Catch ex As Exception MsgBox("Error: " & ex.message) End Try Se crean los siguientes objetos: seleccion de tipo String a la cual se le asigna la sentencia SQL Select * From Clientes (se van a mostrar en la cuadrícula todos los registros de la tabla clientes); adaptadordedatos de tipo SqlDataAdapter el cual será el adaptador de datos para manipular la base de datos SQL Server; 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 envía como parámetros los objetos seleccion (datos a mostrar) y conexion (cadena de conexión), luego se rellena (fill) el adaptador de datos con la tabla de datos (tabladedatos); al objeto tabla en su propiedad DataSource se le establece el conjunto de datos que se van a mostrar al asignársele la tabla de datos; por otro lado, se enlaza al objeto tabla el origen de datos (DataBind()) y por último se establece a la propiedad Text del objeto etiquetaregistros el texto Total de Registros: unido al número 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. Ejecutar la aplicación Web Al ejecutarse la aplicación Web, se visualizará en la página Web los datos de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en el objeto tabla: Figura 7.7 Formulario Web con datos de la tabla clientes. 182

183 7.1.3 Conexión a SQL Server con el control DetailsView Dentro de un sitio Web llamado ConexionWebDetailsView, realizar un programa que permita a un usuario hacer una conexión a una base de datos de SQL Server y mostrar los datos de tabla clientes en un objeto DetailsView. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 1 Label y 1 DetailsView. Figura 7.8 Interfaz de usuario (ConexionWebDetailsView). Establecer las propiedades de los objetos de la interfaz de usuario. Establezca las siguientes modificaciones a los controles: Tabla 7.3 Propiedades de controles del sitio Web ConexionWebDetailsView. Control Propiedad Valor DetailsView1 id detalles Label1 id titulo Text Conexión a una base de datos de SQL SERVER - DetailsView. Font - Bold true Form1 id formulario Document title Conexión a una base de datos con un DetailsView Default.aspx.vb Nombre de archivo. pagina.aspx.vb La interfaz de usuario queda como se muestra en la siguiente figura: 183

184 Figura 7.9 Interfaz de usuario con controles modificados. Establecer la conexión Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DetailsView: Figura 7.10 Ventana de Tareas de DetailsView. Seleccione la opción Elegir origen de datos y <Nuevo origen de datos >, para visualizar la siguiente figura: 184

185 Figura 7.11 Ventana tipo origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datos y pulse el botón Aceptar, para ver la siguiente figura: Figura 7.12 Ventana Elegir la conexión de datos. 185

186 Pulse el botón Nueva Conexión, se visualizará la ventana de Agregar conexión: Figura 7.13 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: Figura 7.14 Ventana con la base de datos seleccionada. 186

187 Pulse el botón Siguiente> para visualizar el siguiente mensaje: Figura 7.15 Ventana configuración de origen de datos. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 7.16 Ventana para configurar la instrucción Select. 187

188 En esta ventana se debe seleccionar los datos a mostrar. Una forma es utilizar instrucciones SQL y la otra es escoger una tabla o vista. Eligiendo la segunda opción seleccione la tabla cliente y elija * para ver todos los registros de la tabla clientes y pulse el botón Siguiente para ver la ventana Consulta de prueba. Figura 7.17 Ventana Consulta de prueba. Pulsando el botón Consulta de prueba se visualizarán los datos, como se aprecia en la figura Pulse el botón Finalizar para volver al diseño de la página: Figura 7.18 Ventana de diseño pagina.aspx. 188

189 Ejecutar la aplicación Web Al ejecutarse la aplicación Web, se visualizará en la página Web el primer registro de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en el objeto detalles: Figura Formulario Web con el primer registro de la tabla clientes. Como se puede apreciar, solamente se puede ver el primer registro de la tabla clientes. Si se desea ver el resto de los registros vuelva a modo diseño y nuevamente seleccione el objeto detalles y en la flecha que aparece en el lado superior derecho, dé clic para visualizar las Tareas de DetailsView y habilite el cuadro de verificación Habilitar paginación, como se aprecia en la siguiente figura: Figura 7.20 Objeto detalles con la opción Habilitar paginación. 189

190 Nuevamente ejecute el sitio Web para visualizar la página Web con la paginación de registros. Figura 7.21 Página Web con registros de la tabla clientes y paginación. En este momento puede moverse entre los registros de la tabla clientes seleccionando el valor numérico que desee. También es posible obtener una apariencia más agradable para visualizar los datos en el objeto detalles. Otra vez en modo de diseño seleccione el objeto detalles y en la ventana Tareas de DetailsView seleccione la opción Formato automático para ver la ventana Autoformato. Figura 7.22 Ventana para cambio de formato del DetailsView. 190

191 Si selecciona el esquema Pizarra y se pulse el botón Aceptar, se obtendrá en modo diseño la siguiente figura: Figura 7.23 Objeto DetailsView con formato Pizarra. Al ejecutarse nuevamente el sitio Web, se aprecia la siguiente figura: Figura 7.24 Página Web con el objeto DetailsView con formato Pizarra. 191

192 7.1.4 Página Web con desplazamiento de registros Crear un sitio Web llamado WebListViewDataPager y realizar un programa que permita visualizar los registros de la tabla clientes de la base de datos bdlibrovbnet.mdf de SQL Server en un control ListView. El usuario deberá poder desplazarse cada cinco registros de la tabla utilizando los botones: Primero, Siguiente, Anterior y Último. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 1 ListView. Figura 7.25 Interfaz de usuario (WebListViewDataPager). 192

193 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 7.4 Propiedades de controles del sitio WebListViewDataPager. La interfaz de usuario queda como se muestra en la siguiente figura: Control Propiedad Valor ListView1 id lista Form1 id formulario Document title Desplazamiento de registros con un ListView. Default.aspx.vb Nombre de archivo. pagina.aspx.vb Establecer la conexión Seleccione el objeto ListView llamado lista y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de ListView: Figura 7.26 Ventana de las Tareas de ListView. Seleccione la opción Elegir origen de datos y <Nuevo origen de datos >, para visualizar la siguiente figura: Figura 7.27 Ventana tipo origen de datos. 193

194 Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datos y pulse el botón Aceptar, para ver la siguiente figura: Figura 7.28 Ventana elegir la conexión de datos. 194

195 Pulse el botón Nueva Conexión, se visualizará la ventana Agregar conexión: Figura 7.29 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: Figura 7.30 Ventana con la base de datos seleccionada. 195

196 Pulse el botón Siguiente> para visualizar la ventana de configuración de origen de datos: Figura 7.31 Ventana configuración de origen de datos. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 7.32 Ventana para configurar la instrucción Select. 196

197 En esta ventana se debe seleccionar los datos a mostrar. Una forma es utilizar instrucciones SQL y la otra es escoger una tabla o vista. Eligiendo la segunda opción seleccione la tabla cliente y elija * para ver todos los registros de la tabla clientes y pulse el botón Siguiente para ver la ventana Consulta de prueba. Figura 7.33 Ventana Consulta de prueba. Pulsando el botón Consulta de prueba se visualizarán los datos, como se aprecia en la figura Pulse el botón Finalizar para volver al diseño de la página: 197

198 Figura 7.34 Ventana de diseño control ListView. Ahora seleccione la opción Configurar ListView en la ventana Tareas de ListView. Figura Ventana para seleccionar la opción Configurar ListView. Al pulsar la opción se visualizará la ventana de diseño del ListView, escoja como diseño cuadrícula, como estilo Multicolor y seleccione Habilitar paginación, se obtendría la siguiente figura: Figura 7.36 Configurar el tipo de diseño, el estilo y habilitar la paginación. l pulsar el botón Aceptar, nuevamente se regresa a modo diseño de la página, como se muestra en la figura: A 198

199 Figura 7.37 Modo diseño del sitio WebListViewDataPager. Seleccione la pestaña Dividir y busque la etiqueta asp:datapager y adicione la propiedad PageSize con un valor igual a cinco (5), como se muestra en la figura: Figura 7.38 Código del objeto DataPager del sitio WebListViewDataPager. Ejecutar sitio Web 199

200 Al ejecutarse el sitio Web, se visualizará la página con los cinco primeros registros de la tabla clientes, como también, los botones de desplazamiento. Figura 7.39 Página con un ListView y botones de desplazamiento. Si la tabla contiene más de cinco registros se activarán los botones Siguiente, Última. El usuario podrá pulsar el botón Siguiente y se desplazará a los próximos cinco registros de la tabla. Pulsando los diferentes botones se podrá desplazar por todos los registros que contenga la tabla. Figura 7.40 Página con los siguientes cinco registros Página Web para insertar registros en una tabla Crear un sitio Web llamado InsertarDatosWeb y diseñar un programa que permita insertar registros en una tabla utilizando el control DetailsView. Además se deben poder visualizar en una cuadrícula los registros de dicha tabla. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 2 Label, 1 DetailsView, 1 DataGridView. Figura 7.41 Interfaz de usuario (InsertarDatosWeb). 200

201 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 7.5 Propiedades de controles del sitio InsertarDatosWeb. Control Propiedad Valor Label1 ID titulo Text Insertar un registro en la tabla Clientes Font - Bold true Label2 ID titulotabla Text Registros de la tabla Clientes. Font - Bold true DetailsView1 ID detalles GridView1 ID tabla Form1 ID formulario Document title Insertar un registro en una tabla. Default.aspx.vb Nombre de archivo. pagina.aspx.vb La interfaz de usuario queda como se muestra en la siguiente figura: 201

202 Figura 7.42 Interfaz de usuario modificada (InsertarDatosWeb). Establecer la conexión Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DetailsView: Figura 7.43 Ventana de las Tareas de DetailsView. 202

203 Seleccione la opción Elegir origen de datos y <Nuevo origen de datos >, para visualizar la siguiente figura: Figura 7.44 Ventana tipo origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datos y pulse el botón Aceptar, para ver la siguiente figura: Figura 7.45 Ventana elegir la conexión de datos. 203

204 Pulse el botón Nueva Conexión, se visualizará la ventana Agregar conexión: Figura 7.46 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: Figura 7.47 Ventana con la base de datos seleccionada. 204

205 Pulse el botón Siguiente> para visualizar la ventana de configuración de origen de datos: Figura 7.48 Ventana configuración de origen de datos. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 7.49 Ventana para configurar la instrucción Select. 205

206 Seleccione la tabla clientes y elija * para ver todos los registros de la tabla clientes. Además pulse el botón Avanzadas para ver la ventana de opciones de generación de consultas SQL avanzadas. Figura 7.50 Ventana Consulta de prueba. Habilite las opciones Generar instrucciones Insert, Update y Delete, Usar concurrencia optimista y pulse el botón Aceptar para ver nuevamente la ventana de configurar origen de datos - datos. Figura 7.51 Configurar origen de datos - Consulta de prueba. 206

207 Pulse el botón Finalizar para volver al diseño de la página: Figura 7.52 Ventana diseño del sitio Web InsertardatosWeb. Habilite la opción Habilitar inserción en la ventana de Tareas de DetailsView. Se observará la siguiente figura: Figura 7.53 DetailsView con la opción Habilitar inserción habilitada. Ahora seleccione el objeto tabla y en las Tareas de GridView en la opción elegir origen de datos escoja el objeto datos para visualizar la siguiente figura: 207

208 Figura 7.54 Objeto tabla con el objeto datos como origen de datos. Ejecutar el sitio Web Al ejecutarse el sitio Web, se visualizará la página con los objetos DetailsView y GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y en el objeto GridView se visualizan todos los registros de dicha tabla. Figura 7.55 Página Web con los objetos DetailsView y GridView. 208

209 Al pulsarse el link Nuevo los campos de texto del objeto detalles quedarán en blanco y se observarán dos nuevos link Insertar y Cancelar, como se aprecia en la figura. Figura 7.56 Página Web para insertar registros. Escriba en cada campo la información que se muestra en la figura Figura 7.57 Página Web con la información a insertar. 209

210 Al pulsarse el link Insertar se guardarán los datos en la tabla clientes y nuevamente se mostrará el primer registro y el link Nuevo, además se visualizará en el objeto tabla el nuevo registro. Figura 7.58 Página Web con el registro insertado Pagina Web para eliminar registros de una tabla Crear un sitio Web llamado EliminarRegistrosWeb y diseñar un programa que permita eliminar un determinado registro de la tabla clientes. El registro lo deberá escoger el usuario por medio de la paginación de registros. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 2 Label, 1 DetailsView, 1 DataGridView. Establecer las propiedades de los objetos de la interfaz de usuario. Establezca las siguientes modificaciones a los controles: 210

211 Tabla 7.6 Propiedades de controles del sitio EliminarRegistrosWeb. Control Propiedad Valor Label1 ID titulo Text Eliminar un registro en la tabla Clientes Font - Bold true Label2 ID titulotabla Text Registros de la tabla Clientes. Font - Bold true DetailsView1 ID detalles GridView1 ID tabla Form1 ID formulario Document title Eliminar un registro en una tabla. Default.aspx.vb Nombre de archivo. pagina.aspx.vb La interfaz de usuario queda como se muestra en la siguiente figura: Figura 7.59 Interfaz de usuario (EliminarRegistrosWeb). Establecer la conexión Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DetailsView. Realice la elección del origen de datos y los pasos subsiguientes según el ejercicio anterior (desde la figura 7.43 hasta la 7.51), obtendrá como resultado final la siguiente figura: 211

212 Figura 7.60 Ventana de diseño de sitio Web EliminarRegistrosWeb. Habilite las opciones Habilitar paginación, Habilitar eliminación en la ventana de Tareas de DetailsView. Se observará la siguiente figura: Figura 7.61 Opciones Habilitar paginación y Habilitar eliminación habilitadas. Ahora seleccione el objeto tabla y en las Tareas de GridView en la opción elegir origen de datos escoja el objeto datos para visualizar la siguiente figura: 212

213 Figura 7.62 Objeto tabla con el objeto datos como origen de datos. Ejecutar el sitio Web Al ejecutarse el sitio Web, se visualizará la página con los objetos DetailsView y GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y en el objeto GridView se visualizan los registros de dicha tabla. Figura 7.63 Página Web con los objetos DetailsView y GridView. Busque el registro que se insertó en el ejemplo anterior utilizando los link numéricos. Se visualiza la siguiente figura. 213

214 Figura 7.64 Página Web para eliminar registros. Al pulsarse el link Eliminar se borrará de la tabla el registro seleccionado en la tabla clientes y nuevamente se mostrará el primer registro, además se visualizará en el objeto tabla los registros actuales. Figura 7.65 Página Web con el registro eliminado. 214

215 7.1.7 Página Web para modificar registros Crear un sitio Web llamado ModificarRegistrosWeb y diseñar un programa que permita modificar un determinado registro de la tabla clientes. El registro lo deberá escoger el usuario utilizando la paginación de registros. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página Web en la posición deseada: 2 Label, 1 DetailsView, 1 DataGridView. Establecer las propiedades de los objetos de la interfaz de usuario. Establezca las siguientes modificaciones a los controles: Tabla 7.7 Propiedades de controles del sitio ModificarRegistrosWeb. Control Propiedad Valor Label1 ID titulo Text Modificar un registro en la tabla Clientes Font - Bold true Label2 ID titulotabla Text Registros de la tabla Clientes. Font - Bold true DetailsView1 ID detalles GridView1 ID tabla Form1 ID formulario Document title Modificar un registro en una tabla. Default.aspx.vb Nombre de archivo. pagina.aspx.vb La interfaz de usuario queda como muestra la siguiente figura: Figura 7.66 Interfaz de usuario (ModificarRegistrosWeb). 215

216 Establecer la conexión Seleccione el objeto DetailsView llamado detalles y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DetailsView. Realice la elección del origen de datos y los pasos subsiguientes según el ejercicio Página Web para insertar registros (desde la figura 7.43 hasta la 7.51), obtendrá como resultado final la siguiente figura: Figura 7.67 Ventana diseño sitio Web ModificarRegistrosWeb. Habilite las opciones Habilitar paginación, Habilitar edición en la ventana de Tareas de DetailsView. Se observará la siguiente figura: Figura 7.68 Opciones Habilitar paginación y Habilitar edición habilitadas. 216

217 Ahora seleccione la opción Editar campos del objeto detalles para visualizar la siguiente figura: Figura 7.69 Ventana Campos del objeto detalles. En la ventana Campos seleccionados seleccione los objetos Editar, Actualizar, Cancelar y en las Propiedades de CommandField en Apariencia en la propiedad ButtonType cambie Link por Button y pulse el botón Aceptar, para visualizar la siguiente figura: Figura 7.70 Objeto detalles con botón Editar. Ahora seleccione el objeto tabla y en las Tareas de GridView en la opción elegir origen de datos escoja el objeto datos para visualizar la siguiente figura: 217

218 Figura 7.71 Objeto tabla con el objeto datos como origen de datos. Ejecutar el sitio Web Al ejecutarse el sitio Web, se visualizará la página con los objetos DetailsView y GridView. En el objeto DetailsView se muestra el primer registro de la tabla clientes y en el objeto GridView se visualizan los registros de dicha tabla. Figura 7.72 Página Web con los objetos DetailsView y GridView. 218

219 Por ejemplo, si se desea modificar el primer registro de la tabla pulse el botón Editar para que las cajas de texto queden en modo de edición y se visualicen los botones Actualizar y Cancelar. Figura 7.73 Página Web para modificar un registro. Al realizar en el campo empresa el cambio Canasticos Bacanos por Canasticos Cheveres y pulsar el botón Actualizar se modificará el registro seleccionado en la tabla clientes, además se visualizará en el objeto tabla los registros actuales. Figura 7.74 Página Web con el registro modificado. 219

220 7.1.8 Página Web con un informe de los registros de una tabla Crear un sitio Web llamado ReporteTablaWeb y diseñar un programa que permita visualizar el reporte de los registros de una tabla. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en la página: 1 MicrosoftReportViewer. Figura 7.75 Interfaz de usuario (ReporteTablaWeb). Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 7.8 Propiedades de controles del sitio ReporteTablaWeb. Control Propiedad Valor MicrosoftReportViewer ID reporte Form1 ID formulario Document title Reporte web de una tabla. Default.aspx.vb Nombre de pagina.aspx.vb archivo. La interfaz de usuario queda como se muestra en la siguiente figura: 220

221 Figura 7.76 Interfaz de usuario modificada (ReporteTablaWeb). Diseñar el informe y establecer la conexión con la base de datos Para seleccionar la tabla y diseñar el informe, pulse la flecha del lado superior derecho del objeto reporte para ver la ventana Tareas de ReportViewer y escoger la opción Elegir informe. Figura 7.77 Selección Tareas de ReportViewer Elegir informe. Seleccione <Informe de Servidor>, para visualizar la siguiente figura: 221

222 Figura 7.78 Elegir informe Informe servidor. Aquí seleccione la opción Diseñar nuevo informe, se visualizará el asistente de informes. Figura 7.79 Asistente para informes. Dé clic en Siguiente> para ver la ventana del asistente para la configuración de orígenes de datos. 222

223 Figura 7.80 Ventana Elegir la conexión de datos. Dé clic en el botón Nueva Conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet. Figura 7.81 Ventana Agregar conexión. Al pulsar el botón Aceptar se visualizará nuevamente la ventana de elección de conexión de datos con la base de datos bdlibrovbnett.mdf, como se aprecia en la siguiente figura: 223

224 Figura 7.82 Ventana con la base de datos seleccionada. Pulse Siguiente> para visualizar el siguiente mensaje: Figura 7.83 Ventana Microsoft Visual Studio. Pulse el botón Sí para copiar el archivo de datos en la carpeta en donde guardó el sitio Web y visualizará la ventana de guardar cadena de conexión: Figura 7.84 Ventana Guardar cadena de conexión. 224

225 Cambie el nombre de la conexión que allí aparece por conexion y pulse el botón Siguiente>, se visualizará la siguiente figura: Figura 7.85 Ventana de elección 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 botón Finalizar, para visualizar la figura: Figura 7.86 Asistente para informes seleccionar el origen de datos. Pulse los signos (+) para desplegar la tabla. Dé clic en Siguiente> para 225

226 visualizar la ventana de selección de tipo de informe. Figura 7.87 Asistente para informes seleccionar el tipo de informe. Seleccione la opción Tabular o Matriz y dé clic en Siguiente> para visualizar la ventana de diseño de tabla. Figura 7.88 Asistente para informes diseñar la tabla. 226

227 Seleccione el campo nit y pulse el boton Grupos, el resto de campos páselos a la ventana Detalles con el botón Detalles>, se obtiene la siguiente figura: Figura Diseño de la tabla con los campos seleccionados. tabla. Dé clic en Siguiente> para visualizar la ventana de elección de diseño de la Figura 7.90 Asistente para informes elegir el diseño de la tabla. 227

228 Seleccione la opción Escalonado o Bloquear y dé clic en Siguiente> para visualizar la ventana de estilo de la tabla. Figura 7.91 Asistente para informes elegir el estilo de tabla. Seleccione la opción con el estilo que desee y dé clic en Siguiente> para visualizar la ventana de finalización del asistente de informes. Figura 7.92 Ventana de finalización del asistente de informes. 228

229 Donde aparece el nombre del informe cámbielo por Reporte Web Tabla Clientes y dé clic en Finalizar> para visualizar el diseño final del informe. Figura 7.93 Ventana de diseño reporte Web. Seleccione nuevamente la página aspx, pulse la flecha del objeto reporte y escoja la opción elegir informe. Figura 7.94 Ventana para elegir informe. Seleccione el informe Reporte Web Tabla Clientes.rdlc, se visualizará la siguiente figura: 229

230 Figura 7.95 Ventana con el informe Reporte Web Tabla Clientes. Ejecutar el sitio Web Al ejecutarse el sitio Web, se visualizará la página con el informe de los registros que contiene la tabla clientes. Puede ajustar el tamaño del reporte en la página en modo de diseño. Figura 7.96 Pagina Web con el informe de los registros de la tabla clientes. 230

231 7.2 Ejercicios de bases de datos con ASP.NET 1. Crear un sitio Web que permita eliminar todos los registros de una tabla cuyos nombres de empresa contengan la letra M. 2. Hacer un sitio Web que permita visualizar los registros de una tabla de una base de datos de SQL Server en un control DataList. 3. Realizar un sitio Web que permita visualizar los registros de una tabla de una base de datos de SQL Server en un control Repeater. 4. Elaborar un sitio Web que permita ejecutar instrucciones SQL en un campo de texto y visualizar los resultados en un objeto GridView. 5. Diseñar un sitio Web que permita actualizar un campo numérico de una tabla de una base de SQL Server. 6. Crear un sitio Web que permita importar todos los datos que existan en un archivo de Excel y visualizarlos en un control FormView. 7. Hacer un sitio Web que permita mostrar los registros de una tabla de una base de datos cuyo nombre de ciudad empiecen con CA. 8. Realizar un sitio web que permita la creación de reporte por un rango determinado. 9. Hacer un sitio Web que permita visualizar en un control DataList los registros de una tabla de Access. 10. Diseñar un sitio Web que permita visualizar en un reporte los registros de una tabla ordenados alfabéticamente. 231

232 8. MANEJO DE TABLAS RELACIONADAS CON ASP.NET Como se vio en el Capítulo 5 es posible obtener una relación entre las tablas pertecenientes a una base de datos. Para que la relación entre tablas se cumpla, como minimo dos tablas deben tener en común un campo. Una de las tablas tendrá como llave primaria el campo común y ésta se llamará tabla principal, la otra tabla no necesita que el campo común sea llave primaria, a ésta se le llamará tabla secundaria. También con sitios Web ASP.NET se puede realizar el desplazamiento entre los registros de las tablas relacionadas, como las operaciones de inserción, modificación, consulta y eliminación, así como la generación de informes. 8.1 Ejemplos de relación entre tablas de una base de datos con ASP.NET Relación de dos tablas con DropDownList y GridView Crear un sitio Web llamado RelacionDosTablasWeb, que permita a un usuario seleccionar el nombre de una empresa desde un control desplegable y en una cuadrícula se visualicen los pedidos que dicha empresa ha realizado. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario Web en la posición deseada: 3 Label, 1 DropDownList, 1 GridView. Figura 8.1. Interfaz de usuario (RelacionDosTablasWeb) Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 232

233 Tabla 8.1 Propiedades de controles del sitio Web RelacionDosTablasWeb. Control Propiedad Valor Label1 ID titulo Text Relación de tablas con un DropDownList y un GridView. Font - Bold true Label2 ID txtempresas Text Seleccione empresa: Label3 ID txtpedidos Text Registros relacionados. DropDownList1 ID listaempresas GridView1 ID tabla Form1 ID formulario Document title Relación de tablas. Default.aspx.vb Nombre de pagina.aspx.vb archivo. Figura 8.2 Interfaz de usuario modificada (RelacionDosTablasWeb). Establecer la conexión Seleccione el objeto DropDownList llamado listaempresas y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de DropDownList. 233

234 Figura 8.3 Ventana de las Tareas del DropDownList. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: Figura 8.4 Ventana para configuración de orígenes de datos. En la opción Seleccionar un origen de datos escoja <Nuevo origen de datos > y pulse el botón Aceptar, para ver la ventana de elección de tipo de origen de datos. 234

235 Figura 8.5 Ventana para elegir tipo de origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datos y pulse el botón Aceptar, para ver la siguiente figura: Figura 8.6 Ventana elegir la conexión de datos. 235

236 Pulse el botón Nueva Conexión, se visualizará la ventana Agregar conexión: Figura 8.7 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: Figura 8.8 Ventana con la base de datos seleccionada. 236

237 Pulse el botón Siguiente> para visualizar la ventana de configuración de origen de datos datos: Figura 8.9 Ventana configuración de origen de datos - datos. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 8.10 Ventana para configurar la instrucción Select. 237

238 Seleccione la tabla clientes y elija * para ver todos los registros de la tabla clientes y pulse el botón Siguiente para ver la ventana de Consulta de prueba. Figura 8.11 Ventana de Consulta de prueba. Pulse el botón Finalizar para volver a la ventana de elegir un origen de datos. Cambie en la opción seleccionar un campo de datos para mostrar en DropDownList nit por empresa. Se observará la siguiente figura: Figura 8.12 Ventana de datos a mostrar en el DropDownList. 238

239 Pulse el botón Aceptar para volver a modo diseño. Figura 8.13 Ventana modo diseño del sitio Web RelacionDosTablasWeb. Habilite la opción Habilitar AutoPostBack (hace un llamado al servidor para devolver los datos seleccionados) en la ventana Tareas de DropDownList. Además seleccione el objeto tabla. Se observará la siguiente figura: Figura 8.14 Objeto tabla seleccionado. En Tareas de GridView en la opción elegir origen de datos escoja <Nuevo origen de datos > para visualizar la siguiente figura: 239

240 Figura 8.15 Ventana elección tipo de origen de datos (objeto tabla). Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datospedidos y pulse el botón Aceptar, para ver la siguiente figura: Figura 8.16 Ventana elegir la conexión de datos. 240

241 Dé clic en la flecha siguiente figura: y escoja el objeto llamado conexion. Se observará la Figura 8.17 Ventana Elegir conexión de datos con el objeto conexion. Pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 8.18 Ventana para configurar la instrucción Select. 241

242 Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla pedidos. La ventana sería similar a la siguiente figura: Figura 8.19 Ventana con la tabla pedidos seleccionada. Pulse el botón WHERE para visualizar la ventana Agregar cláusula WHERE. Figura 8.20 Ventana Agregar cláusula WHERE. 242

243 Seleccione en la ventana Columna el campo nit, en la ventana Operador el signo igual (=), en la ventana Origen la opción Control, en la ventana Id. de control seleccione el objeto listaempresas y pulse el botón Agregar para ver la siguiente figura: Figura 8.21 Ventana con la cláusula WHERE agregada. Pulse el botón Aceptar para volver a la ventana Configurar origen de datos datospedidos. Figura 8.22 Ventana Configurar origen de datos datospedidos. 243

244 Pulse el botón Siguiente para ver la ventana Consulta de prueba. Figura 8.23 Ventana Consulta de prueba. Si desea realizar una prueba pulse el botón Consulta de prueba para ver la ventana de Editor de valores del parámetro. Figura 8.24 Ventana Editor de valores del parámetro. 244

245 En el campo de texto Valor escriba un valor de un nit que se encuentre en la tabla clientes (100 para nuestro caso) y pulse el botón Aceptar para ver todos los registros relacionados con la tabla pedidos. Si existe relación se observaría la siguiente figura: Figura 8.25 Ventana Consulta de prueba (relación clientes pedidos). Pulse el botón Finalizar para volver a modo diseño del sitio Web. Figura Ventana de diseño sitio Web RelacionDosTablasWeb. Ejecutar el sitio Web Al ejecutarse el sitio Web, se observan en la página los objetos DropDownList y 245

246 GridView. En el objeto DropDownList se puede seleccionar un nombre de una empresa de la tabla clientes y en el objeto GridView se visualizarán los registros relacionados con la tabla pedidos. Figura 8.27 Página Web con la relación clientes - pedidos Relación de tablas utilizando GridView y FormView Diseñar un sitio Web llamado RelacionGridViewFormViewWeb, que permita a un usuario seleccionar de un control GridView un registro de la tabla clientes y visualizar en un control FormView todos los registros relacionados con la tabla pedidos de la base de datos bdlibrovbnet.mdf. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 3 Label, 1 GridView, 1 FormView. Figura Interfaz de usuario (RelacionGridViewFormViewWeb) 246

247 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 8.2 Propiedades de controles sitio Web RelacionGridViewFormViewWeb. Control Propiedad Valor Label1 ID titulo Text Relación de tablas con GridView y FormView. Font - Bold true Label2 ID txttabla Text Seleccione Clientes Label3 ID txtforma Text Pedidos relacionados con el Cliente. FormView1 ID forma GridView1 ID tabla Form1 ID formulario Document title Relación con GridView y FormView. Default.aspx.vb Nombre de pagina.aspx.vb archivo. Figura 8.29 Interfaz de usuario modificada (RelacionGridViewFormViewWeb). Establecer la conexión Seleccione el objeto GridView llamado tabla y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de GridView. 247

248 Figura 8.30 Ventana de las Tareas del GridView. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: Figura 8.31 Ventana para elegir tipo de origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datosclientes y pulse el botón Aceptar, para ver la siguiente figura: 248

249 Figura 8.32 Ventana elegir la conexión de datos. Pulse el botón Nueva Conexión, se visualizará la ventana Agregar conexión: Figura 8.33 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: 249

250 Figura 8.34 Ventana con la base de datos seleccionada. Pulse el botón Siguiente> para visualizar la ventana de configuración de origen de datos datosclientes: Figura 8.35 Ventana configuración de origen de datos - datos. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. 250

251 Figura 8.36 Ventana para configurar la instrucción Select. Seleccione la tabla clientes y elija * para ver todos los registros de la tabla clientes y pulse el botón Siguiente para ver la ventana Consulta de prueba. Figura 8.37 Ventana de Consulta de prueba. Pulse el botón Finalizar para volver a modo diseño. 251

252 Figura 8.38 Ventana modo diseño del sitio Web RelacionGridViewFormViewWeb. Habilite la opción Habilitar selección en la ventana Tareas de GridView. Además seleccione el objeto forma. Se observará la siguiente figura: Figura 8.39 Objeto forma seleccionado. En Tareas de FormView en la opción elegir origen de datos escoja <Nuevo origen de datos > para visualizar la siguiente figura: 252

253 Figura 8.40 Ventana elección tipo de origen de datos (objeto forma). Seleccione el objeto Base de datos y cambie el identificador para el origen de datos SqlDataSource1 por datospedidos y pulse el botón Aceptar, para ver la siguiente figura: Figura 8.41 Ventana Elegir la conexión de datos. 253

254 Dé clic en la flecha siguiente figura: y escoja el objeto llamado conexion. Se observará la Figura 8.42 Ventana Elegir conexión de datos con el objeto conexion. Pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 8.43 Ventana para configurar la instrucción Select. Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla pedidos. La ventana sería similar a la siguiente figura: 254

255 Figura 8.44 Ventana con la tabla pedidos seleccionada. Pulse el botón WHERE para visualizar la ventana Agregar cláusula WHERE. Figura 8.45 Ventana Agregar cláusula WHERE. Seleccione en la ventana Columna el campo nit, en la ventana Operador el signo igual (=), en la ventana Origen la opción Control, en la ventana Id. de control seleccione el objeto tabla y pulse el botón Agregar para ver la siguiente figura: 255

256 Figura 8.46 Ventana con la cláusula WHERE agregada. Pulse el botón Aceptar para volver a la ventana Configurar origen de datos datospedidos. Figura 8.47 Ventana Configurar origen de datos datospedidos. Pulse el botón Siguiente para ver la ventana Consulta de prueba. 256

257 Figura 8.48 Ventana Consulta de prueba. Pulse el botón Finalizar para volver a modo diseño del sitio Web. Habilite la opción Habilitar paginación en la ventana Tareas de FormView. Se observará la siguiente figura: Figura 8.49 Ventana de diseño sitio Web RelacionGridViewFormViewWeb. Además en Tareas de FormView escoja Formato Automático, seleccione el esquema profesional para visualizar la siguiente figura: 257

258 Figura 8.50 Ventana de Autoformato. Pulse el botón Aceptar para volver a modo diseño. Ejecutar el sitio Web Al ejecutarse el sitio Web, se observa en la página el objeto GridView. En dicho objeto se visualizan los registros de la tabla clientes. Figura 8.51 Página Web con la cuadrícula de clientes. Si pulsa sobre el link Seleccionar al frente del nit 100, se visualizarán los registros relacionados con la tabla pedidos en el objeto forma. 258

259 Figura 8.52 Página Web con registros relacionados clientes - pedidos. Si desea que la presentación de los registros relacionados sea más profesional, vuelva a modo de diseño y seleccione el objeto forma y visualice las Tareas de FormView, como se muestra en la siguiente figura: Figura 8.53 Página Web con el objeto forma seleccionado. Seleccione la opción Editar plantillas. Se observará la siguiente figura: 259

260 Figura 8.54 Objeto forma en modo de edición de plantillas. Modifique cada una de las etiquetas del objeto forma y pulse la opción Terminar edición de plantillas. Según los cambios realizados, la página podría quedar de la siguiente forma: Figura 8.55 Objeto forma en las plantillas modificadas. Al volver a ejecutar el sitio Web y seleccionar el nit 100, se observará la siguiente figura: 260

261 Figura 8.56 Página Web con la relación clientes pedidos Página Web con tres tablas relacionadas Diseñar un sitio Web llamado RelacionTresTablasWeb, que permita a un usuario seleccionar de un control DropDownList el nombre de una empresa de la tabla clientes y mostrar en una cuadrícula los registros relacionados con la tabla pedidos. Al seleccionar algún registro de la cuadrícula de pedidos se debe visualizar en otra cuadrícula la venta realizada en dicho pedido. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control específico y ubique los siguientes controles en el formulario en la posición deseada: 3 Label, 1 GridView, 1 FormView. Figura 8.57 Interfaz de usuario (RelacionTresTablasWeb). 261

262 Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: Tabla 8.3 Propiedades de controles sitio Web RelacionTresTablasWeb. Control Propiedad Valor Label1 ID titulo Text Relación de tres tablas con ListView y dos GridView. Font - Bold true Label2 ID txtempresa Text Seleccione empresa Label3 ID txtpedidos Text Relación Clientes - Pedidos. Label4 ID txtventas Text Relación Pedidos - Ventas. ListBox1 ID listaempresas GridView1 ID tablapedidos GridView2 ID tablaventas Form1 ID formulario Document title Relación de tres tablas. Default.aspx.vb Nombre de pagina.aspx.vb archivo. Figura 8.58 Interfaz de usuario modificada (RelacionTresTablasWeb). Establecer la conexión Seleccione el objeto ListView llamado listaempresas y en la flecha que aparece en el lado superior derecho, dé clic en el mouse para visualizar las Tareas de Listbox. 262

263 Figura 8.59 Ventana de las Tareas del ListBox. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: Figura 8.60 Ventana para configuración de orígenes de datos. En la opción Seleccionar un origen de datos escoja <Nuevo origen de datos > y pulse el botón Aceptar, para ver la ventana de elección de tipo de origen de datos. 263

264 Figura 8.61 Ventana para elegir tipo de origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos por datosclientes y pulse el botón Aceptar, para ver la siguiente figura: Figura 8.62 Ventana elegir la conexión de datos. Pulse el botón Nueva Conexión, se visualizará la ventana Agregar conexión: 264

265 Figura 8.63 Ventana Agregar conexión. En la ventana que se visualiza elija como origen de datos Microsoft SQL Server y la base de datos bdlibrovbnet y pulse Aceptar. Se visualizará la siguiente figura: Figura 8.64 Ventana con la base de datos seleccionada. Pulse el botón Siguiente> para visualizar la ventana de configuración de origen de datos datosclientes: 265

266 Figura 8.65 Ventana configuración de origen de datos - datosclientes. Cambie el nombre de la conexión bdlibrovbnetconnectionstring1 por conexion y pulse el botón Siguiente para ver la ventana para configurar la instrucción Select. Figura 8.66 Ventana para configurar la instrucción Select- datosclientes. Seleccione la tabla clientes y elija * para ver todos los registros de la tabla clientes y pulse el botón Siguiente para ver la ventana Consulta de prueba. 266

267 Figura 8.67 Ventana Consulta de prueba. Pulse el botón Finalizar para volver a la ventana de elegir un origen de datos. Cambie en la opción seleccionar un campo de datos para mostrar en ListBox nit por empresa. Se observará la siguiente figura: Figura 8.68 Ventana de datos a mostrar en el ListBox. Pulse el botón Aceptar para volver a modo diseño. 267

268 Figura 8.69 Ventana modo diseño del sitio Web RelacionTresTablasWeb. Habilite la opción Habilitar AutoPostBack en la ventana Tareas de ListBox. Además seleccione el objeto tablapedidos. Se observará la siguiente figura: Figura 8.70 Objeto tablapedidos seleccionado. Seleccione la opción Elegir origen de datos, para visualizar la siguiente figura: 268

269 Figura 8.71 Ventana para elegir tipo de origen de datos. Seleccione el objeto Base de datos y cambie el identificador para el origen de datos por datospedidos y pulse el botón Aceptar, para ver la siguiente figura: Figura 8.72 Ventana Elegir la conexión de datos. Dé clic en la flecha y escoja el objeto llamado conexion. Se observará la ventana de configurar la instrucción Select. 269

270 Figura 8.73 Ventana para configurar la instrucción Select. Seleccione la tabla pedidos y elija * para ver todos los registros de la tabla pedidos y pulse el botón WHERE para visualizar la ventana Agregar cláusula WHERE. Figura 8.74 Ventana Agregar cláusula WHERE. Seleccione en la ventana Columna el campo nit, en la ventana Operador el signo igual (=), en la ventana Origen la opción Control, en la ventana Id. de control seleccione el objeto listaempresas y pulse el botón Agregar para ver la siguiente figura: 270

271 Figura 8.75 Ventana con la cláusula WHERE agregada. Pulse el botón Aceptar para volver a la ventana Configurar origen de datos datospedidos. Figura 8.76 Ventana Configurar origen de datos datospedidos. Pulse el botón Siguiente para ver la ventana Consulta de prueba. 271

272 Figura 8.77 Ventana Consulta de prueba. Pulse el botón Finalizar para volver a modo diseño del sitio Web. Habilite la opción Habilitar selección en la ventana Tareas de GridView. Se observará la siguiente figura: Figura 8.78 Ventana de diseño sitio Web RelacionTresTablasWeb. Ahora seleccione el objeto tablaventas. Se observará la siguiente figura: 272

273 Figura 8.79 Objeto tablaventas seleccionado. E En Tareas de GridView en la opción elegir origen de datos escoja <Nuevo origen de datos > para visualizar la siguiente figura: Figura 8.80 Ventana de elección de tipo de origen de datos (objeto tablaventas). Seleccione el objeto Base de datos y cambie el identificador para el origen de datos por datosventas y pulse el botón Aceptar, para ver la siguiente figura: 273

274 Figura 8.81 Ventana Elegir la conexión de datos - datosventas. Dé clic en la flecha y escoja el objeto llamado conexion. Pulse el botón Siguiente para observar la ventana de configurar la instrucción Select. Figura 8.82 Ventana para configurar la instrucción Select - datosventas. Pulse el botón WHERE para visualizar la ventana Agregar cláusula WHERE. 274

275 Figura 8.83 Ventana Agregar cláusula WHERE. Seleccione en la ventana Columna el campo nit, en la ventana Operador el signo igual (=), en la ventana Origen la opción Control, en la ventana Id. de control seleccione el objeto tablapedidos y pulse el botón Agregar para ver la siguiente figura: Figura 8.84 Ventana con la cláusula WHERE agregada. Pulse el botón Aceptar para volver a la ventana Configurar origen de datos datosventas. 275

276 Figura 8.85 Ventana Configurar origen de datos datosventas. Pulse el botón Siguiente para ver la ventana Consulta de prueba. Figura 8.86 Ventana Consulta de prueba - datosventas. Pulse el botón Finalizar para volver a modo diseño del sitio Web. Se observará la siguiente figura: 276

277 Figura 8.87 Ventana de diseño de sitio Web RelacionTresTablasWeb. Ejecutar el sitio Web Al ejecutarse el sitio Web, se observa en la página el objeto ListBox. En dicho objeto se visualizan las empresas de la tabla clientes. Figura 8.88 Página Web con la lista de empresas de la tabla clientes. Si pulsa sobre el nombre de empresa Canasticos Cheveres, se visualizarán en el objeto tablapedidos los pedidos 10 y 20 que se encuentran relacionados con la tabla clientes. Al escoger el link Seleccionar al frente del número de pedido 20, se visualizarán en el objeto tablaventas los registros relacionados con la tabla pedidos. 277

278 Figura 8.89 Página Web con registros relacionados clientes pedidos - ventas. 8.2 Ejercicios relación de tablas con ASP.NET 1. Crear un sitio Web que permita realizar una relación entre tres tablas de una base de datos en SQL Server utilizando controles GridView. 2. Hacer un sitio Web que permita realizar una relación de tres tablas; para la primera relación se deben seleccionar los datos desde un ListBox y visualizarlos en un GridView. Desde éste se debe seleccionar un registro y mostrar los registros de la segunda relación en un DataList. 3. Diseñar un sitio Web que permita visualizar en un reporte los registros relacionados de dos tablas cuyos nit sean mayores que Elaborar un sitio Web que permita visualizar un reporte de los registros relacionados cuyas empresas empiecen por las letras PO. 5. Realizar un sitio Web que permita mostrar en un ListBox los registros relacionados de dos tablas. 6. Crear un sitio Web que permita importar todos los datos relacionados que existan en un FormView a un archivo de Excel. 7. Hacer un sitio Web que permita mostrar los datos relacionados de dos tablas de una base de datos por un rango determinado en la tabla principal. 8. Elaborar un sitio Web que permita la creación de un reporte con dos tablas relacionadas. 9. Hacer un sitio Web que permita visualizar en un control DataList los registros relacionados de dos tablas de Access. 10. Diseñar un sitio Web que permita visualizar un reporte según un rango seleccionado. 278

279 ANEXO A CREACIÓN DE APLICACIONES WINDOWS FORMS Este tutorial se trabaja con el entorno de desarrollo de Microsoft Visual Studio.NET 2008, también llamado entorno de desarrollo integrado (Integrated Development Environment, IDE). Este entorno es personalizable y contiene todas las herramientas para construir programas para Microsoft Windows. Figura A.1 Página de Inicio de Visual Studio A.1 Crear un nuevo proyecto Visual Basic.NET (Windows Forms) Crear una aplicación Windows Forms en Visual Basic.NET, requiere unos pasos muy sencillos como son: iniciar un nuevo proyecto Visual Basic.NET, crear la interfaz del usuario, establecer las propiedades de los objetos, escribir el código, guardar la aplicación y ejecutar el proyecto. Para iniciar un nuevo proyecto desde la página de inicio, se pueden seguir estos pasos: En la ventana proyectos recientes seleccionar la opción Crear: link Proyecto Hacer clic en la opción Archivo del menú y seleccionar Nuevo Proyecto... Cuando se crea un proyecto por cualquiera de las dos opciones se visualiza la siguiente ventana: 279

280 Figura A.2 Ventana Nuevo proyecto Windows Form. A.2 Elegir plantilla de aplicaciones Visual Studio.NET ofrece varias plantillas de aplicaciones para soportar el desarrollo de diferentes tipos de aplicaciones y componentes. Antes de iniciar un nuevo proyecto, se debe escoger el tipo de plantilla que se va a utilizar. Una plantilla de aplicación proporciona archivos de inicio y una estructura de proyecto, además contiene los objetos básicos del proyecto y la configuración del entorno que se necesita para crear el tipo de aplicación que se desea. Para el ejemplo, como Tipo de proyecto se debe seleccionar Visual Basic - Windows, como plantilla Aplicación de Windows Forms, como Nombre del proyecto MiProgramaWF. Pulse el botón Aceptar para visualizar el entorno de desarrollo del proyecto Windows Forms MiProgramaWF. Figura A.3 Ventana Nuevo proyecto Windows Form. 280

281 Cuando se selecciona una plantilla de aplicaciones aparece el entorno de desarrollo, donde encontrará: Menú principal y la barra de herramientas estándar: Proporcionan acceso a la mayoría de comandos que controlan el entorno de programación de Visual Studio.NET. Los comandos del menú principal funcionan igual que en todas las aplicaciones basadas en Windows. La barra de herramientas proporciona los iconos que sirven como acceso a la mayoría de comandos estándar de Windows. También contiene iconos que permiten abrir el explorador de soluciones, la ventana de propiedades, el cuadro de herramientas y otros elementos importantes del entorno de desarrollo. Figura A.4 Menú principal y barra de herramientas estándar. Menú Principal Barra de Herramientas Cuadro de Herramientas: El cuadro de herramientas contiene diversos controles que se pueden utilizar para añadir ilustraciones, etiquetas, botones, cuadros de lista, barras de desplazamiento, menús y formas geométricas a una interfaz de usuario. Cada control que se añade a un formulario se convierte en un objeto de la interfaz de usuario programable en la aplicación. Estos objetos son visibles para los usuarios cuando la aplicación se ejecuta y funcionan como los objetos estándar de cualquier aplicación basada en Windows. Figura A.5 Cuadro de Herramientas. 281

282 Diseñador formulario Windows (Windows Forms): Cuando se inicia un proyecto en Visual Basic.NET, el Diseñador de formulario de Windows (Windows Forms) se abre en la vista diseño (un formulario tiene vista diseño cuando se inicia el proyecto y está en modo de ejecución cuando se ejecuta la aplicación), mostrándose el formulario Form1 del proyecto. En dicho formulario se pueden ubicar los controles u objetos necesarios para la aplicación arrastrándolos desde el cuadro de herramientas para crear la interfaz de usuario. El formulario predeterminado contiene los elementos mínimos utilizados por la mayoría de formularios: una barra de título, un cuadro de control y los botones minimizar, maximizar y cerrar. Figura A.6 Formulario Windows. Explorador de soluciones: permite visualizar archivos y realizar tareas de administración de archivos en una solución o en un proyecto. Una solución es un contenedor para proyectos y elementos de solución que pueden incluirse en una aplicación. Normalmente, una solución contiene uno o más proyectos relacionados. Un proyecto es un contenedor dentro de una solución que se utiliza para administrar, generar y depurar lógicamente los elementos del (los) proyecto (s) que constituyen la aplicación. Figura A.7 Ventana Explorador de soluciones. 282

283 Ventana de propiedades: muestra una lista de las propiedades que facilitan la configuración de los valores o propiedades del control seleccionado y se pueden modificar mientras se crea o se edita la aplicación. Una propiedad describe una característica de un objeto, como el tamaño, título, color, etc. Figura A.8 Cuadro de propiedades. Ventana de depuración de errores: muestra una lista de los errores que se generan al realizar modificaciones a los controles o al ejecutar la aplicación. Figura A.9 Ventana de lista de errores. A.3 Crear la interfaz de usuario Para crear la interfaz de usuario de la aplicación, en primer lugar se deben ubicar los controles necesarios en un formulario desde el cuadro de herramientas. Como ejemplo se creará un programa que permita a un usuario digitar un número y al pulsar un botón se muestre en una cuadrícula la tabla de multiplicación de dicho número. Para este caso se diseñará la interfaz de usuario utilizando los siguientes controles: 3 Label, 1 TextBox, 1 Button y 1 DataGridView. Cuando existen varios controles del mismo tipo, éstos se numeran en el mismo orden en que son colocados (nombre del control más numero del consecutivo). La interfaz de usuario del ejemplo será como muestra la figura a continuación. 283

284 Figura A.10 Prepantalla de la interfaz de usuario. A.4 Establecer las propiedades de los controles Después de colocar los controles u objetos a un formulario, se puede establecer sus propiedades en la ventana Propiedades o en el Editor de código. Para modificar las propiedades se selecciona el control en el formulario y se cambia su configuración en la ventana Propiedades. Para el caso del ejemplo establezca las siguientes modificaciones en la propiedad correspondiente a cada uno de los siguientes controles: Tabla A.1 Propiedades de los controles de la aplicación MiProgramaWF. Control Propiedad Valor Label1 Name titulo Text Generar una tabla de multiplicar: Font - Bold True Label2 Name txtnumero Text Digite numero: Label3 Name txttabla Text La tabla del numero TextBox1 name camponumero Text En blanco DataGridView1 Name tabla Button1 Name boton Text Ver Tabla Form1 Name formulario Text Tablas de multiplicar La interfaz de usuario con las modificaciones respectivas en las propiedades de cada control queda como muestra la siguiente figura: 284

285 Figura A.11 Pantalla final de la interfaz de usuario A.5 Escribir código Una vez se hayan establecido las propiedades iniciales del formulario y sus objetos, se puede agregar el código que se ejecutará en respuesta a un evento específico de cada control. Los eventos ocurren cuando se realizan diferentes acciones sobre un control u objeto. Por ejemplo, el evento Clic de un botón tiene lugar cuando un usuario hace clic sobre él con el mouse. Por lo general en las aplicaciones es necesario escribir código para lograr el objetivo de dar solución al problema planteado por el usuario. Para el caso del ejemplo, dé doble clic en el objeto Button llamado boton y abra el editor de código, la figura muestra el editor de código del control. Figura A.12 Editor de código del objeto boton. Ahora escriba el siguiente código entre Private Sub y End Sub: With tabla.columns.add("multiplicando", " Multiplicando ").Columns.Add("Multiplicador", " Multiplicador ").Columns.Add("Producto", "Producto").RowCount = 10 For i As Integer = 0 To.RowCount - 1.Item(0, i).value = camponumero.text.item(1, i).value = i + 1.Item(2, i).value = (camponumero.text * (i + 1)) Next End With 285

286 Este código sirve para rellenar el objeto tabla con los respectivos datos. Utilizando el método Add de la propiedad Columns se le adicionan los nombres Multiplicando, Multiplicador, Producto en la primera fila y la propiedad RowCount se le asigna un valor de 10 filas. Con un ciclo For que se ejecutará desde una posición i igual a cero (0) hasta el número de filas -1 del objeto tabla y por cada fila tres ítems. En la primera columna se imprimirá el valor digitado en el objeto camponumero, en la segunda columna se imprimirá el valor i+1, en la tercera columna el producto de multiplicar el valor del objeto camponumero por i+1. A.6 Guardar la aplicación Una vez finalizada la creación de la aplicación, se debe guardar la aplicación dentro del entorno de desarrollo para asegurar que todos los cambios realizados se almacenen, esto se puede realizar de la siguiente forma: En el menú Archivo, haga clic en Guardar todo. O hacer clic en el icono de la barra de herramientas. Cualquier opción visualizará la siguiente ventana: Figura A.13 Ventana Guardar proyecto. Se debe seleccionar la ubicación en donde se guardará el proyecto. Al pulsar el botón Guardar se creará una carpeta con el mismo nombre del proyecto. Dentro de dicha carpeta se crean los archivos: 1. Un archivo de proyecto.vbproj, el cual contiene información específica para una determinada tarea de programación. 2. Un archivo de solución.sln, el cual contiene información relacionada con uno o más proyectos. Siempre elija el archivo solución para abrir un proyecto. A.7 Ejecutar la aplicación Windows Forms Para ejecutar el proyecto en el entorno de desarrollo de Visual Basic.NET, se debe realizar lo siguiente: 1. Haga clic en el botón Iniciar de la barra de herramientas estándar. También puede presionar F5 para ejecutar el proyecto. Si la aplicación se ejecuta sin errores, aparecerá una versión ejecutable del formulario. 2. Cuando termine de ejecutar la aplicación se debe cerrar el formulario para regresar al entorno de programación. 286

287 Las aplicaciones Windows Forms creadas con Visual Basic.NET tienen la extensión.exe, que podrán ser ejecutadas en cualquier equipo que tenga instalado Microsoft Windows. Visual Basic.NET instala de manera automática los archivos de soporte, incluyendo las bibliotecas de vínculos dinámicos y archivos de.net framework. Visual Studio puede crear dos tipos de archivos ejecutables: 1. Debug: Compilación de depuración, se utiliza cuando se prueba y depura un programa (Default). 2. Release: Versión de edición, se utiliza cuando se termina el programa siendo ésta una versión optimizada de menor tamaño Si se escribe el número 5 en el campo de texto y se pulsa el botón Ver Tabla, se visualizará la siguiente figura. Figura A.14 Aplicación MiProgramaWF ejecutado. A.8 Cerrar y abrir un proyecto Para cerrar el proyecto MiProgramaWF o cualquier otro proyecto, en modo diseño se pueden realizar los siguientes pasos: 1. En el menú Archivo, hacer clic en la opción Cerrar Proyecto. 2. Si desea cerrar el proyecto y salir de Visual Studio, en el menú Archivo haga clic en la opción Salir. En cada caso se deben guardar los nuevos cambios que se hayan realizado. Para volver a abrir la aplicación MiProgramaWF o cualquier otra aplicación existente se deberán realizar los siguientes pasos: 1. Abrir Visual Studio.NET. 2. Si en la pantalla inicial de Visual Studio.NET se visualiza el nombre del proyecto que se desea abrir haga doble clic para abrir la aplicación. Si por el contrario no se visualiza la aplicación en el menú Archivo, seleccione Abrir proyecto..., busque la carpeta MiProgramaWF y seleccione el archivo MiPrograma.sln y pulse la opción Abrir para abrir la aplicación en el entorno de desarrollo de Visual Basic.NET. 287

288 ANEXO B Creación de aplicaciones Web ASP.NET Este tutorial se trabaja con el entorno de desarrollo de Microsoft Visual Studio.NET ASP.NET es un entorno de programación que se ejecuta en un servidor Web para generar y administrar páginas Web. Visual Studio 2008 proporcionar el diseñador de formularios Web, un editor, controles y un sistema de depuración, para facilitar la creación de aplicaciones que guardadas en un servidor pueden ser accesadas desde un explorador, teléfonos móviles, etc. Figura B.1 Página de Inicio de Visual Studio B.1 Crear un nuevo Sitio Web (ASP.NET) Crear una aplicación Web ASP.NET utilizando el lenguaje de programación Visual Basic.NET requiere unos pasos muy sencillos como son: iniciar un nuevo sitio Web, crear la interfaz del usuario, establecer las propiedades de los objetos, escribir el código y ejecutar el sitio Web. Como ejemplo se creará un sitio Web que permita a un usuario escoger un tipo de comida rápida y una bebida en un restaurante y visualizar el valor a pagar por dicho pedido. Se debe discriminar el valor antes del Impuesto al Valor Agregado ( IVA, 16%) y el valor total a pagar. 288

289 Para iniciar un nuevo sitio desde la página de inicio, se pueden seguir estos pasos: En la ventana proyectos recientes seleccionar la opción Crear: link Sitio Web Hacer clic en la opción Archivo del menú y seleccionar Nuevo sitio Web... Cuando se crea un sitio Web por cualquier de las dos opciones se visualiza la siguiente ventana: Figura B.2 Ventana Nuevo sitio Web ASP.NET. B.2 Elegir plantilla de aplicaciones Una plantilla de aplicación Web proporciona archivos de inicio y una estructura del sitio Web, además contiene los objetos básicos del sitio y la configuración del entorno que se necesita para crear el tipo de aplicación que se desea. Para el ejemplo, como plantilla seleccione Sitio Web ASP.NET, como Ubicación del sitio escoja Sistema de archivos (también es posible obtener una ubicación HTTP o FTP), con el botón Examinar puede buscar la carpeta para ubicar el sitio Web, para este caso guarde el sitio con el nombre MiProgramaWeb. Pulse el botón Aceptar para visualizar el entorno de desarrollo del sitio Web MiProgramaWeb. 289

290 Figura B.3 Ventana Nuevo sitio Web. Cuando se selecciona una plantilla de aplicaciones aparece el formulario Web en el entorno de desarrollo, donde encontrará: Menú principal y la barra de herramientas estándar: proporcionan acceso a la mayoría de comandos que controlan el entorno de programación de Visual Studio.NET. Los comandos del menú principal funcionan igual que en todas las aplicaciones basadas en Windows. La barra de herramientas proporciona los iconos que sirven como acceso a la mayoría de comandos estándar de Windows. También contiene iconos que permiten abrir el explorador de soluciones, la ventana de propiedades, el cuadro de herramientas y otros elementos importantes del entorno de desarrollo. Figura B.4 Menú principal y barra de herramientas estándar. Menú Principal Barra de Herramientas Cuadro de Herramientas: el cuadro de herramientas contiene controles estándar de Windows, datos, navegación, elementos Web, etc. Cada control que se añade a un formulario Web se convierte en un objeto de la interfaz de usuario programable en la aplicación. 290

291 Figura B.5 Cuadro de Herramientas. Diseñador de formularios Web: cuando se inicia un sitio Web el diseñador de formularios de Web se abre en vista Diseño (un formulario tiene vista diseño cundo se inicia el sitio y está en modo de ejecución cuando se ejecuta la aplicación), mostrándose el formulario Web Default.aspx. En la parte inferior del formulario Web se encuentran las pestañas Diseño, Dividir (divide el formulario Web en dos partes: una en modo diseño y en la otra mitad se visualiza el código HTML del formulario Web), Código (muestra el código HTML), como también las pestañas <html>, <body>, <form#form1>, <div>. En dicho formulario Web se pueden ubicar los controles u objetos necesarios para la aplicación arrastrándolos desde el cuadro de herramientas para crear la interfaz de usuario. Figura B.6 Formulario Web. 291

292 Explorador de soluciones: permite visualizar las carpetas y archivos que se han creado. Si observa en la carpeta en donde guardó el sitio Web se creó la carpeta App_Data y los archivos Default.aspx, Default.aspx.vb (este archivo contiene el código fuente que da soporte a la página Default.aspx) y Web.xml (archivo de configuración xml). Figura B.7 Ventana Explorador de soluciones. Ventana de propiedades: muestra una lista de las propiedades que facilitan la configuración de los valores o propiedades del control seleccionado y se pueden modificar mientras se crea o se edita la aplicación. Una propiedad describe una característica de un objeto, como el tamaño, título, color, etc. Figura B.8 Cuadro de propiedades. 292

293 Ventana de depuración de errores: muestra una lista de los errores que se generan al realizar modificaciones a los controles o al ejecutar la aplicación. Figura B.9 Ventana de lista de errores. B.3 Crear la interfaz de usuario Para crear la interfaz de usuario del sitio Web, en primer lugar se deben ubicar los controles necesarios en el formulario Web desde el cuadro de herramientas. Para el ejemplo se diseñará la interfaz de usuario utilizando los siguientes controles: 8 Label, 5 TextBox, 1 ListBox y 4 RadioButton. Cuando existen varios controles del mismo tipo, éstos se numeran en el mismo orden en que son colocados (nombre del control más número del consecutivo). La interfaz de usuario del ejemplo será como muestra la figura a continuación. Figura B.10 Preformulario Web de la interfaz de usuario. 293

294 B.4 Establecer las propiedades de los controles. Después de colocar los controles u objetos a un formulario Web, se puede establecer sus propiedades en la ventana Propiedades o en el Editor de código. Para modificar las propiedades se selecciona el control en el formulario Web y se cambia su configuración en la ventana Propiedades. Para el caso del ejemplo establezca las siguientes modificaciones a cada uno de los siguientes controles: Tabla B.1 Propiedades de los controles del sitio Web MiProgramaWeb. Control Propiedad Valor Label1 ID titulo Text Comidas Rápidas topo Gigio. Font - Bold True Label2 ID txtcomida Text Seleccione comida: Font - Bold True Label3 ID txtbebida Text Seleccione bebida: Font - Bold True Label4 ID txtvalorcomida Text Valor Comida: Font - Bold True Label5 ID txtvalorbebida Text Valor Bebida: Font - Bold True Label6 ID txtsubtotal Text Subtotal: Font - Bold True Label7 ID txtiva Text I.V.A.: Font - Bold True Label8 ID txttotal Text Total a Pagar: Font - Bold True TextBox1 ID valorcomida Text En blanco TextBox2 ID valorbebida Text En blanco TextBox3 ID subtotal Text En blanco TextBox4 ID iva Text En blanco TextBox5 ID total Text En blanco ListBox1 ID listacomida AutoPostBack true RadioButton1 ID botongaseosa Text Gaseosa AutoPostBack true GroupName bebidas RadioButton2 ID botonjugo Text Jugo AutoPostBack true GroupName bebidas 294

295 RadioButton3 ID botonlimonada Text Limonada AutoPostBack true RadioButton4 ID botoncerveza Text Cerveza AutoPostBack true GroupName bebidas Form1 ID formulario Document Title Comidas Rápidas Default.aspx Nombre del archivo Pagina.aspx La interfaz de usuario con las modificaciones respectivas en las propiedades de cada control queda como se muestra en la siguiente figura: Figura B.11 Formulario Web final de la interfaz de usuario. B.5 Escribir código Una vez se hayan establecido las propiedades iníciales del formulario Web y sus objetos, se puede agregar el código que se ejecutará en respuesta a un evento específico de cada control. Los eventos ocurren cuando se realizan diferentes acciones sobre un control u objeto. Por ejemplo, el evento Clic de un botón tiene lugar cuando un usuario hace clic sobre él con el mouse. Por lo general en las aplicaciones es necesario escribir código para lograr el objetivo de dar solución al problema planteado por el usuario. a) Seleccione el control ListBox llamado listacomidas, en la ventana de propiedades busque la propiedad Items, al frente de Colección pulse en los tres puntos ( ) para ver la ventana Editor de la colección ListItem: 295

296 Figura B.12 Formulario Web con el control ListBox seleccionado. Pulse el botón Agregar del Editor de la colección ListItem, busque la propiedad Text y cámbie el texto por Hamburguesa. Realice los mismos pasos para agregar los textos: Pizza, Perro caliente, Choriarepa. Por último pulse el botón Aceptar. Figura B.13 Agregación de nombres al control ListBox. b) Dé doble clic en el objeto ListBox llamado listacomidas, para abrir el editor del procedimiento listacomida_selectedindexchanged y escriba el siguiente código: If listacomida.selectedindex = 0 Then valorcomida.text = "5000" End If 296

297 If listacomida.selectedindex = 1 Then valorcomida.text = "3000" End If If listacomida.selectedindex = 2 Then valorcomida.text = "4000" End If If listacomida.selectedindex = 3 Then valorcomida.text = "3500" End If subtotal.text = Val(valorcomida.Text) + Val(valorbebida.Text) iva.text = Val(subtotal.Text) * 0.16 total.text = Val(subtotal.Text) + Val(iva.Text) En el anterior código se utiliza la estructura de control if para determinar qué posición del objeto listacomidas se ha pulsado utilizando la propiedad SelectedIndex. Dependiendo del index seleccionado se le asignará al objeto valorcomida el valor correspondiente. Por último se le asigná los valores de las operaciones correspondientes a los objetos subtotal, iva, total por intermedio de su propiedad Text. Se utiliza la función Val () para convertir una cadena de caracteres a entero (recuerde que los objetos TextBox capturan texto). c) Dé doble clic en el objeto RadioButton llamado botongaseosa, para abrir el editor del procedimiento botongaseosa_checkedchanged y escriba el siguiente código: If botongaseosa.checked Then valorbebida.text = "1500" End If subtotal.text = Val(valorcomida.Text) + Val(valorbebida.Text) iva.text = Val(subtotal.Text) * 0.16 total.text = Val(subtotal.Text) + Val(iva.Text) d) Dé doble clic en el objeto RadioButton llamado botonjugo, para abrir el editor del procedimiento botonjugo_checkedchanged y escriba el siguiente código: If botonjugo.checked Then valorbebida.text = "2000" End If subtotal.text = Val(valorcomida.Text) + Val(valorbebida.Text) iva.text = Val(subtotal.Text) * 0.16 total.text = Val(subtotal.Text) + Val(iva.Text) e) Dé doble clic en el objeto RadioButton llamado botonlimonada, para abrir el editor del procedimiento botonlimonada_checkedchanged y escriba el siguiente código: If botonlimonada.checked Then valorbebida.text = "1800" End If subtotal.text = Val(valorcomida.Text) + Val(valorbebida.Text) iva.text = Val(subtotal.Text) * 0.16 total.text = Val(subtotal.Text) + Val(iva.Text) f) Dé doble clic en el objeto RadioButton llamado botoncerveza, para abrir el editor del procedimiento botoncerveza_checkedchanged y escriba el siguiente código: 297

298 If botoncerveza.checked Then valorbebida.text = "2500" End If subtotal.text = Val(valorcomida.Text) + Val(valorbebida.Text) iva.text = Val(subtotal.Text) * 0.16 total.text = Val(subtotal.Text) + Val(iva.Text) En los anteriores códigos se utiliza la estructura de control if para determinar que objeto RadioButton se selecciona utilizando la propiedad Checked. Dependiendo del control seleccionado se le asignará al objeto valorbebida el valor correspondiente. También se actualizan los objetos subtotal, iva y total. B.6 Ejecutar la aplicación Web Para ejecutar el sitio Web en el entorno de desarrollo de Visual Basic.NET, se debe realizar lo siguiente: 1. Haga clic en el botón Iniciar depuración de la barra de herramientas estándar. También puede presionar Ctrl+F5 para ejecutar el sitio Web. Otra forma es la opción Iniciar depuración del menú Depurar. 2. Cuando termine de ejecutar la aplicación se debe cerrar el formulario Web para regresar al entorno de programación. Figura B.14 Ventana de ejecución de sitio Web MiProgramaWeb. Cuando se ejecuta el sitio Web se visualizará la ventana de Depuración no habilitada. Si se ejecuta Modificar el archivo Web.config para habilitar la depuración se mostrará la página Web en el explorador seleccionado y esta ventana no se volverá a mostrar al ejecutarse nuevamente el sitio Web; por el contrario, si se selecciona Ejecutar sin depuración se mostrará inicialmente una página Web en blanco, la cual deberá cerrar para visualizar el sitio Web ejecutado (cada vez que se ejecute esta opción se visualizará la ventana de Depuración no habilitada). Seleccione la primera opción para ver la siguiente figura. 298

299 Figura B.15 Sitio Web MiProgramaWeb ejecutado. Al seleccionar como comida Hamburguesa y como bebida Limonada, se visualiza la siguiente figura: Figura B.16 Sitio Web con comida y bebida seleccionados. 299

300 B.7 Cerrar y abrir un sitio Web Para cerrar el sitio Web MiProgramaWeb o cualquier otro sitio web, estando en modo diseño se pueden realizar los siguientes pasos: 3. En el menú Archivo, hacer clic en la opción Cerrar Proyecto. 4. Si desea cerrar el sitio Web y salir de Visual Studio, en el menú Archivo haga clic en la opción Salir. En cada caso se deben guardar los nuevos cambios que se hayan realizado. Para volver a abrir la aplicación MiProgramaWeb o cualquier otra aplicación existente se deberán 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 aplicación. Si por el contrario, no se visualiza la aplicación en el menú Archivo, seleccione Abrir sitio Web..., busque la carpeta MiProgramaWeb y pulse el botón Abrir para abrir la aplicación Web en el entorno de desarrollo de Visual Basic.NET. 300

301 ANEXO C SQL SERVER Este tutorial utiliza como base de datos SQL Server 2005 Express. Dicha base de datos se puede instalar independientemente de la versión de Visual Studio. C.1. Conectarse a SQL Server. Cuando se instala SQL Server, en los programas existe una opción para conectarse a dicha base de datos. Seleccione Microsoft SQL Server Realice los siguientes pasos: 1. Inicio - > Todos los Programas - > Microsoft SQL Server SQL Server Management Studio Express. Figura C.1 Opciones para conectarse a SQL Server. Al pulsar SQL Server Management Studio Express se visualiza la ventana Connect to Server. Figura C.2 Ventana Connect to Server. Deberá digitar lo siguiente: 1. Server Name: Por omisión aparece el nombre del servidor en donde fue instalado SQL Server. 2. Authenticacion: Por omisión aparece Windows Authentication, la otra opción es SQL Server Authentication. Si selecciona SQL Server Authentication, se 301

302 deberá digitar el User Name y el Password creado cuando se realizó la instalación de SQL Server. 3. Pulsar el botón Connect. Se visualizará el entorno de trabajo de Microsoft SQL Server Management Studio Express. Figura C.3 Ventana Microsoft SQL Server Management Studio Express. C.2 Crear una base de datos En la ventana Object Explorer seleccione la opción Databases y pulse el botón derecho del mouse para ver las opciones New Databases, Attach, Restore Databases, Restore File and FilesGroups y Refresh. Figura C.4 Opciones de DataBases. Seleccione la opción New DataBase para ver la siguiente ventana: 302

303 Figura C.5 Ventana para crear una nueva base de datos. Escriba el nombre de la base de datos en la opción Database name: (bdlibrovbnet para los ejemplos del libro) y pulse el botón OK para volver a la ventana de Microsoft SQL Server. Dé doble clic sobre la carpeta Databases para desplegar las bases de datos existentes, como se aprecia en la siguiente figura: Figura C.6 Ventana para crear una nueva base de datos. Dé doble clic sobre el nombre de la base de datos bdlibrovbnet para desplegar los elementos que fueron creados. Se obtendrá la siguiente figura: 303

304 Figura C.7 Base de datos bdlibrovbnet con sus elementos creados inicialmente. C.3 Crear tablas en la base de datos Para crear tablas en la base de datos seleccione en cualquiera de las dos ventanas la carpeta Tables y dé clic derecho para visualizar las opciones: New Tables, Filter y Refresh. Figura C.8 Opciones de la carpeta Tables. 304

305 Seleccione New Table para ver la ventana de diseño de la tabla, como se aprecia en la siguiente figura: Figura C.9 Ventana de diseño de una tabla. Para agregar los campos a la tabla en Column Name escriba nit, en Data Type seleccione nvarchar(50) (campo alfanumérico). Figura C.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 305

306 último seleccione el campo nit y pulse el icono para crear la clave primaria ( figura quedará: ), la Figura C.11 Ventana con los campos de la tabla y nit como llave primaria. Ahora se debe guardar la tabla, pulse el signo cambios. para visualizar la ventana de Figura C.12 Ventana de cambio de una tabla. Pulse el botón Yes para obtener la ventana para escoger el nombre Choose Name. 306

307 Figura C.13 Ventana para escribir el nombre de la tabla creada. Escriba como nombre de la tabla clientes y pulse el botón 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 continuación: Figura C.14 Estructura tabla pedidos. Figura C.15 Estructura tabla productos. 307

308 Figura C.16 Estructura tabla ventas. Al finalizar de crear las tablas, la estructura de la base de datos con las tablas quedaría como se aprecia en la siguiente figura: Figura C.17 Estructura de la base de datos. Cuando se selecciona una tabla y se da clic derecho, se visualiza la ventana con las diferentes opciones que se pueden realizar como son: New Table: para crear una nueva tabla. Modify: permite modificar la estructura de una tabla que previamente se había creado. Open Table: para abrir una ventana de edición para insertar o visualizar los datos de una tabla. Script Table as: para crear, borrar, alterar, seleccionar, insertar, actualizar, ejecutar una consulta, un archivo o una imagen. View Dependencies: para visualizar las dependencias (relaciones) de una tabla. Rename: para renombrar una tabla. Delete: para eliminar una tabla. Refresh: para refrescar o actualizar una tabla. Properties: para visualizar las propiedades de una tabla. 308

309 Figura C.18 Opciones para la manipulación de una tabla. Seleccione la tabla clientes y dé clic derecho y escoja la opción Open Table para insertar información a la tabla. Figura C.19 Ventana para insertar datos a la tabla clientes. Inserte la información de acuerdo con la siguiente figura: Figura C.20 Ventana con datos insertados en la tabla clientes. 309

310 En este momento se podrá realizar instrucciones SQL para manipular la tabla clientes. Al pulsarse el icono (Show SQL Pane) se visualizará un panel para digitar instrucciones SQL. Por omisión se muestra la siguiente ventana: Figura C.21 Ventana al seleccionar el icono Show SQL Pane. Si se escribe la instrucción SQL Select * from clientes where nit>400 y se pulsa el icono de verificación de sintaxis de instrucciones SQL (Verify SQL sintax) se visualizará la siguiente ventana: Figura C.22 Ventana de verificación de sintaxis SQL. Al pulsar el botón Aceptar se mostrará la figura: 310

311 Figura C.23 Ventana al Aceptar la verificación de sintaxis SQL. Para ejecutar la instrucción SQL de deberá dar clic en el icono SQL), se verá la siguiente figura: (Execute Figura C.24 Ventana con la instrucción SQl ejecutada. Ahora se deberán llenar con datos las tablas pedidos, productos y ventas de acuerdo con las siguientes figuras: 311

312 Figura C.25 Tabla pedidos con datos insertados. Figura C.26 Tabla productos con datos insertados. Figura C.27 Tabla ventas con datos insertados. C.4 Crear Diagramas de una base de datos Para crear un diagrama de una base datos seleccione Database Diagrams de la base de datos bdlibrovbnet, dé clic derecho y seleccione la opción New Database Diagram. Para ver la ventana de adición de tablas: 312

313 Figura C.28 Ventana Add Table de la opción New Database Diagram. Seleccione una tabla y pulse el botón Add. Realice esta misma operación con cada una de las tablas restantes. Al terminar, pulse el botón Close para observar la siguiente figura: Figura C.29 Ventana Database Diagram con las tablas adicionadas. Para crear la relaciones entre las tablas seleccione el campo nit de la tabla cliente, dé clic en el mouse y manténgalo pulsado y arrástrelo hacia el campo nit de la tabla pedidos, suelte el mouse para ver la ventana Tables and Columns. 313

314 Figura C.30 Ventana Tables and Columns. En el campo Relationship name escriba el nombre de la relación. Seleccione como llave primaria (Primary key table) la tabla clientes y el campo nit, como llave secundaria (Foreign key table) la tabla pedidos y el campo nit. Pulse el botón OK para visualizar la ventana Foreign Key Relationship. Figura C.31 Ventana Foreign key Relationship. En esta ventana se visualizan todas las características de la relación. Pulse el botón OK para terminar. Realice las demás relaciones hasta obtener la siguiente figura: 314

315 Fgura C.32 Ventana de diagramas con las relaciones entre tablas. Ahora se debe guardar el diagrama, pulse el signo de cambios en un diagrama. para visualizar la ventana Figura C.33 Ventana de cambios en un diagrama de la base de datos. Pulse el botón Yes para obtener la ventana para escoger el nombre Choose Name. Figura C.34 Ventana para escribir el nombre del diagrama creado. 315

316 Escriba como nombre del diagrama relaciontablas y pulse el botón OK. Se visualizará la ventana para guardar los cambios realizados. Figura C.35 Ventana para guardar los cambios realizados en la base de datos. Al pulsarse el botón Yes se guardarán los cambios. Seleccionado el diagrama creado y dar clic derecho se visualizará una ventana donde podrá realizar las siguientes Tareas: New Database Diagrams (crear un nuevo diagrama), Modify (modificar un diagrama), Rename (renombrar un diagrama), Delete (eliminar un diagrama), Refresh ( refrescar un diagrama). Figura C.36 Ventana para manipulación de los diagramas. C.5 Crear una vista Una vista es un espejo de cierta información que contiene una base de datos. Para crear una vista de una base datos seleccione View de la base de datos bdlibrovbnet, dé clic derecho y seleccione la opción New View. Para ver la ventana de adición de vistas: 316

317 Figura C.37 Ventana para adicionar tablas a una vista. Adicione las tablas clientes y pedidos. Al terminar pulse el botón Close para visualizar la siguiente figura: Figura C.38 Ventana de la vista con las tablas clientes pedidos. Seleccione los campos que desea ver en la vista. Dé clic en el icono (Execute SQL), para ver la ejecución de la vista: 317

318 Figura C.39 Ventana de ejecución de la vista creada. Ahora se debe guardar la vista creada, pulse el signo ventana de cambios en una vista. para visualizar la Figura C.40 Ventana de cambios en una vista. Pulse el botón Yes para obtener la ventana para escoger el nombre Choose Name. Figura C.41 Ventana para escribir el nombre de la vista creada. 318

319 Escriba como nombre de la vista vista_clientes_pedidos y pulse el botón OK. Se visualizará la siguiente figura: Figura C.42 Ventana con la vista guardada. 319

320 ANEXO D ORACLE DATABASE 10G EXPRESS D.1 Instalación De la siguiente dirección: descargue el Oracle Database 10g Express o una versión superior, el cual será un archivo comprimido llamado OracleXEUniv.rar; una vez hecho esto, dé doble clic en el siguiente icono: Figura D.1 Archivo OracleXEUniv comprimido. Para descomprimir el archivo.rar, dé doble clic sobre éste. Se mostrará la siguiente ventana: Figura D.2 Ventana para descomprimir el archivo OracleXEUniv. En la carpeta en donde se descomprima el archivo debe quedar guardado el siguiente archivo: Figura D.3 Archivo ejecutable OracleXEUniv. 320

321 Al dar doble clic sobre éste, se inicializará el asistente de instalación de Oracle Database 10g Express, como muestra la siguiente figura: Figura D.4 Asistente InstallShield. Al terminar la extracción de los archivos necesarios para la instalación de ORACLE se visualizará la siguiente ventana: Figura D.5 Asistente de instalación Oracle Database 10g Express Edition. Pulse el botón Siguiente> para visualizar la ventana de contrato de licencia: 321

322 Figura D.6 Ventana del acuerdo de licencia Oracle Database 10g Express Edition. En esta ventana seleccione la opción Acepto los términos del acuerdo de licencia y pulse el botón Siguiente> para visualizar la ventana de Seleccionar Ubicación de Destino. Figura D.7 Ventana de ubicación Oracle Database 10g Express Edition. En esta pantalla se específica el directorio en el cual desea instalar ORACLE. Se aconseja que instale el software en el directorio que sugiere por default el instalador (c:\oraclexe), después pulse el botón Siguiente> para visualizar la ventana Específicar contraseñas de Bases de Datos. 322

323 Figura D.8 Ventana de contraseñas Oracle Database 10g Express Edition. En esta ventana digite la contraseña que considere. Para esta instalación se digitó la contraseña Pulse el botón Siguiente> para visualizar la ventana Resumen. Figura D.9 Ventana Resumen de instalación Oracle Database 10g Express Edition. Revise cada uno de los valores y pulse el botón Instalar, para visualizar la ventana de Estado de la Instalación. 323

324 Figura D.10 Ventana Estado de instalación Oracle Database 10g Express Edition. Al finalizar el proceso se visualizará la ventana Finalización de la instalación, donde por default está habilitada la opción Iniciar la pagina inicial de la base de datos. Figura D.11 Finalización instalación de Oracle Database 10g Express Edition. Pulse el botón Terminar para visualizar la pantalla de inicio de ORACLE Database Express Edition. Figura D.12 Ventana para conectarse a Oracle Database 10g Express Edition. 324

325 Para realizar la conexión a la base de datos es necesario digitar el usuario y la contraseña. Por default el nombre de usuario es system, y la contraseña será aquella que fue digitada en la ventana Específicar contraseñas de Bases de Datos. La siguiente es la pantalla de inicio de ORACLE. Figura D.13 Ventana inicial de Oracle Database 10g Express Edition. D.2 Creación de una tabla en la base de datos con usuario system Para crear una tabla en la base de datos es necesario seleccionar el objeto explorador de objetos y escoger la opción Crear y allí elegir Tablas. Figura D.14 Ventana con la opción crear tablas en Oracle Database 10g. 325

326 Para visualizar la siguiente ventana: Figura D.15 Ventana inicial para crear una tabla en Oracle Database 10g. Aquí seleccione la opción Crear, la cual está a la derecha en la parte superior de la ventana, esto con el fin de visualizar la siguiente ventana: Figura D.16 Ventana selección del objeto Tabla. Elija la opción Tabla para visualizar la ventana en donde se dará el nombre a la tabla y se digitarán los campos que contendrá la tabla. En el nombre de la tabla escriba clientes y los nombres de los campos o nombres de las columnas serán: 326

327 Figura D.17 Estructura tabla clientes. Nombre de la columna nit representante razonsocial direccion telefono ciudad credito Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Number Tipo La ventana debería quedar de la siguiente manera: Figura D.18 Ventana de campos de la tabla clientes. Al terminar pulse el botón Siguiente> para crear la clave primaria, este paso visualizará la siguiente ventana: Figura D.19 Ventana de creación de clave primaria. 327

328 Aquí en la opción clave primaria seleccione Sin rellenar, el nombre de la restricción de la clave primaria es colocada por default este caso será CLIENTES_PK, la clave primaria será NIT (VARCHAR2) y no se debe seleccionar clave primaria compuesta. Por último pulse el botón Siguiente> para visualizar la ventana de Clave Ajena. Figura D.20 Ventana de creación de clave ajena. Para el ejemplo no se hace necesario crear una clave ajena, por lo tanto pulse el botón Siguiente> para visualizar la ventana de restricciones. Figura D.21 Ventana de restricciones de una tabla. 328

329 Para el ejemplo tampoco se hace necesario crear restricciones a la tabla, por consiguiente pulse el botón Terminar para visualizar la ventana de Confirmar. Figura D.22 Ventana de confirmación de creación de una tabla. Pulse el botón Crear para visualizar la ventana en donde se mostrará el nombre de la tabla como las respectivas columnas que contiene dicha tabla. Figura D.23 Ventana con la creación de la tabla. 329

330 El siguiente paso es insertarle información a la tabla, seleccionando la opción Datos, se mostrará el mensaje esta tabla no contiene ningún dato, ya que hasta el momento no se le ha ingresado ningún dato. Figura D.24 Ventana para insertar datos en una tabla. Para insertar datos seleccione la opción Insertar Fila, la cual mostrará la siguiente ventana: Figura D.25 Inserción de datos en una tabla. 330

331 Aquí rellene con información cada uno de los campos de la tabla. Al terminar de digitar información en el último campo de la tabla puede seleccionar el botón Crear o Crear y Crear Otro. El botón Crear y Crear Otro le permitirá guardar el registro digitado y limpiar los campos para ingresar nueva información en otro registro. El botón Crear guarda el último registro digitado y visualizará la tabla con la información que contenga dicha tabla. Figura D.26 Ventana con los datos insertados en la tabla clientes. Por último para salir de la base de datos seleccione la opción Desconectarse, para visualizar la siguiente pantalla: Figura D.27 Ventana de desconexión de Oracle. 331

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA Visual Basic.NET es la última versión del sistema de desarrollo Visual Basic. Antes de empezar a crear aplicaciones en Visual Basic.NET, le será útil conocer y entender algunos conceptos básicos de.net.

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Microsoft Visual Basic 2008 Microsoft Visual Basic 2008 Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado es Visual Basic 2008, cuyas particularidades

Más detalles

PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA...

PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA... CONTENIDO PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA... 1 QUÉ ES UN PROGRAMA... 1 QUÉ ES Visual Basic.NET... 2 REALIZACIÓN DE UN PROGRAMA EN Visual Basic.NET... 3 Cómo crear un programa...

Más detalles

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC 2008

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC 2008 PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC 2008 www.bmformacion.es info@bmformacion.es Objetivos Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado

Más detalles

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes Introducción al.net Framework Diseño Basado en Componentes Introducción al.net Framework Arquitectura.NET Herramientas, lenguajes y tecnologías.net.net Framework Ingeniería Informática Universidad Carlos

Más detalles

Microsoft Visual Basic.NET

Microsoft Visual Basic.NET Microsoft Visual Basic.NET Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado es Visual Basic.NET, cuyas particularidades se estudian en la

Más detalles

VISUAL BASIC 6 GUIA 4. Ing. Raymond Marquina 1

VISUAL BASIC 6 GUIA 4. Ing. Raymond Marquina 1 VISUAL BASIC 6 GUIA 4 Ing. Raymond Marquina 1 MEJORAS AL PROGRAMA PHONE Ahora mejorara al programa Pone añadiendo un botón Buscar y botón Eliminar. Buscar le permitirá buscar un nombre particular y Eliminar

Más detalles

12. Acceso a Bases de Datos con VB.NET

12. Acceso a Bases de Datos con VB.NET 12. Acceso a Bases de Datos con VB.NET Una base de datos es un sistema formado por un conjunto de datos relacionados y almacenados en discos que permiten el acceso directo a ellos y una serie de programas

Más detalles

1. Bases de datos desde VB.Net 1.1 Introducción. Desde Vb Net 2005 se puede acceder a las siguientes bases de datos, utilizando las clases adecuadas.

1. Bases de datos desde VB.Net 1.1 Introducción. Desde Vb Net 2005 se puede acceder a las siguientes bases de datos, utilizando las clases adecuadas. 1. Bases de datos desde VB.Net 1.1 Introducción. Desde Vb Net 2005 se puede acceder a las siguientes bases de datos, utilizando las clases adecuadas. Oracle SQL Server Access Las que se puedan acceder

Más detalles

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

Visual Basic 2012 (VB.NET) Los fundamentos del lenguaje - Desarrollar con Visual Studio 2012

Visual Basic 2012 (VB.NET) Los fundamentos del lenguaje - Desarrollar con Visual Studio 2012 Presentación de la plataforma.net 1. Introducción 13 1.1 Principio de funcionamiento del Common Language Runtime 14 1.2 Los servicios del Common Language Runtime 16 1.3 La Base Class Library 17 1.4 Las

Más detalles

Día 2: Utilizando controles de datos en Visual Studio 2008.

Día 2: Utilizando controles de datos en Visual Studio 2008. Día 2: Utilizando controles de datos en Visual Studio 2008. Requerimientos de este laboratorio: Base de datos creada en el laboratorio 1 en SQL SERVER. Visual Studio 2008 *Nota: Si usted cuenta con el

Más detalles

Presentación y objetivos

Presentación y objetivos Presentación y objetivos Este curso consta de tres módulos a través de los cuales se conocerá como desarrollar aplicaciones basadas en tecnología.net y Java. La programación orientada a objetos es una

Más detalles

Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer.

Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer. Crear una página Web básica en Visual Web Developer Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer. Visual Web Developer es una herramienta

Más detalles

Visual Basic y ASP.NET a su alcance Nivel Básico/Intermedio

Visual Basic y ASP.NET a su alcance Nivel Básico/Intermedio Visual Basic y ASP.NET a su alcance Nivel Básico/Intermedio Carlos Alberto Vanegas Ingeniero de Sistemas Especialista en Ingeniería de Software Maestría en Ingeniería de Sistemas Profesor, Universidad

Más detalles

Curso: Programación con Microsoft Visual Basic 2010.

Curso: Programación con Microsoft Visual Basic 2010. Curso: Programación con Microsoft Visual Basic 2010. Código: 1386 Familia Profesional: Programación Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 100 horas

Más detalles

HERRAMIENTAS DE DESARROLLO

HERRAMIENTAS DE DESARROLLO CONTENIDO 3.1 Estudio de herramientas para el desarrollo de Servicios Web 3.2 Compatibilidad de Herramientas integradas a.net 3.3 Ventajas y desventajas de la integración de código.net MONICA CECILIA GALLEGOS

Más detalles

Introducción a Visual Studio.NET

Introducción a Visual Studio.NET 1 Introducción a Visual Studio.NET Objetivos Después de estudiar este capítulo, el lector será capaz de: Defi nir Visual Studio.NET y sus estrategias para el desarrollo de software. Comprender el funcionamiento

Más detalles

Temas de esta unidad :

Temas de esta unidad : Temas de esta unidad : Creación de Controles Web Personalizados Validación de entradas de usuarios Creación, lectura y escritura de archivos de texto Conceptos - Creacion de Controles Web Personalizados

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INTRODUCCIÓN Objetivo del curso: El alumno desarrollará la capacidad para resolver problemas de almacenamiento, recuperación y ordenamiento de datos, utilizando las diferentes estructuras que existen para

Más detalles

ASP.NET PROGRAMA FORMATIVO. Modalidad: Teleformación. Duración: 56 horas. Objetivos:

ASP.NET PROGRAMA FORMATIVO. Modalidad: Teleformación. Duración: 56 horas. Objetivos: ASP.NET Modalidad: Teleformación Duración: 56 horas. Objetivos: Comprender el marco de trabajo de Microsoft.NET y ASP.NET, crear componentes en Visual Basic.NET o C#, crear una aplicación en ASP.NET usando

Más detalles

Objetivos y Temario CURSO VISUAL BASIC 2012

Objetivos y Temario CURSO VISUAL BASIC 2012 Objetivos y Temario CURSO VISUAL BASIC 2012 OBJETIVOS Este curso sobre VB.NET está dirigido a los desarrolladores, incluso principiantes, que quieran dominar Visual Basic.NET. Después de describir el entorno

Más detalles

Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online)

Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online) Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Postgrado en Desarrollo de Aplicaciones de Escritorio

Más detalles

Cómo abrir la base de datos de Aspel-SAE 5.0?

Cómo abrir la base de datos de Aspel-SAE 5.0? Cómo abrir la base de datos de Aspel-SAE 5.0? 1 Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde la

Más detalles

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO]

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO] Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones Conceptos Lo primero que necesitamos para crear una aplicación o proyecto web es seleccionar el entorno del Visual

Más detalles

Introducción a la plataforma.net

Introducción a la plataforma.net Introducción a la plataforma.net Autora: Mª del Pilar Pavón Rosano DNI: 52.923.715-W INTRODUCCIÓN Este artículo está dirigido a los profesores y profesoras del módulo Diseño y Realización de Servicios

Más detalles

Cómo abrir las bases de datos de Aspel-NOI 5.0?

Cómo abrir las bases de datos de Aspel-NOI 5.0? Cómo abrir las bases de datos de Aspel-NOI 5.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

Curso: Desarrollo de aplicaciones para escritorio y acceso de datos con.net FRAMEWORK 4.

Curso: Desarrollo de aplicaciones para escritorio y acceso de datos con.net FRAMEWORK 4. Curso: Desarrollo de aplicaciones para escritorio y acceso de datos con.net FRAMEWORK 4. Código: 1385 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales

Más detalles

Macros y lenguaje VBA Aprender a programar con Excel (2ª edición)

Macros y lenguaje VBA Aprender a programar con Excel (2ª edición) Capítulo 1: Introducción A. Introducción 14 B. A quién va dirigido este libro? 14 C. Qué es una macro? 14 D. Qué interés tiene hacer macros? 15 E. Contenido del libro 15 Capítulo 2: El editor de Visual

Más detalles

Introducción a ASP.NET

Introducción a ASP.NET Introducción a ASP.NET Índice Introducción a ASP.NET...1 1 La plataforma.net...2 1.1 Tecnologías de la Plataforma.NET...2 2 Microsoft Web Platform...4 3.NET Framework...6 3.1 Ventajas de utilizar.net...6

Más detalles

Diplomado en Programación de Aplicaciones con Visual Basic.net

Diplomado en Programación de Aplicaciones con Visual Basic.net Diplomado en Programación de Aplicaciones con Visual Basic.net Diplomado en Programación de aplicaciones con Visual Basic.NET Temario Nivel Básico - Intermedio En este curso aprenderás características

Más detalles

Curso Online de Visual C#

Curso Online de Visual C# Curso Online de Visual C# Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado es Visual C# 2008, cuyas particularidades se estudian en la primera

Más detalles

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos.

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos. C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos Unidad 1 Introducción Visual Basic.NET El objetivo de la unidad es conocer

Más detalles

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN FACULTAD NACIONAL DE MINAS Escuela de Sistemas OBJETIVOS: General: Estudiar y utilizar los elementos del entorno de trabajo Visual Basic for Applications

Más detalles

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25.

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25. INDICE Programación Introducción 706 Capitulo 21 BASIC 711 Introducción 711 Sintaxis 713 Procedimientos y control de flujo 713 Tipos de datos 714 Disponibilidad y variantes del dialecto 714 Capitulo 22.

Más detalles

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE DESCRIPCIÓN Microsoft es una de las principales empresas dedicada al mundo de las tecnologías, haciendo grandes esfuerzos para ponerse a la cabeza de la actualidad

Más detalles

Cómo abrir las bases de datos en Aspel-COI 6.0?

Cómo abrir las bases de datos en Aspel-COI 6.0? Cómo abrir las bases de datos en Aspel-COI 6.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

 ##$ % & '( % & )*+),$ -##$ -!- $! -./ - 0WebClass1-2 ! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass

Más detalles

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio).

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio). Lo nuevo en Visual Basic DataRepeater, control El nuevo control DataRepeater permite utilizar controles estándar de formularios Windows Forms para mostrar filas de datos en un contenedor desplazable. Este

Más detalles

Técnico Superior en Programación con Microsoft Visual Basic 2010

Técnico Superior en Programación con Microsoft Visual Basic 2010 Técnico Superior en Programación con Microsoft Visual Basic 2010 Duración: 150 horas Coste Bonificable: 825 Objetivos del curso - Aprender a desarrollar aplicaciones utilizando la tecnología de programación

Más detalles

Programacio n con Visual Basic 2010

Programacio n con Visual Basic 2010 Programacio n con Visual Basic 2010 Agradecimientos Francisco Charte Ojeda Introducción Plataforma y servicios Ediciones de Visual Basic 2010 A quién va dirigido este libro Estructura del libro Tipografía

Más detalles

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

ENTORNO DE DESARROLLO MICROSOFT.NET 2010 ENTORNO DE DESARROLLO MICROSOFT.NET 2010 UNIDAD 2 Estructura de contenidos: 1. Conociendo ASP 2. Sitio Web y Proyecto Web 3. WebForm 4. Características de los webforms 5. Entorno del.net 6. Controles básicos

Más detalles

Curso: Programación con Microsoft Visual C SHARP 2010.

Curso: Programación con Microsoft Visual C SHARP 2010. Curso: Programación con Microsoft Visual C SHARP 2010. Código: 1387 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 100

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

GUÍA DE TRABAJO N 3 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 10. Tema: APLICACIONES WINDOWS FORMS LENGUAJE C#

GUÍA DE TRABAJO N 3 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 10. Tema: APLICACIONES WINDOWS FORMS LENGUAJE C# Página 1 de 10 Tema: APLICACIONES WINDOWS FORMS LENGUAJE C# Objetivo: Conocer y aplicar correctamente las diferentes estructuras de programación que hacen parte del lenguaje de Programación C# en una Aplicación

Más detalles

Elaboración de un Formulario Web utilizando ASP.NET desde cero.

Elaboración de un Formulario Web utilizando ASP.NET desde cero. Elaboración de un Formulario Web utilizando ASP.NET desde cero. Realizado por: Fabricio.A.Santillana.V. 2-718-1147 TABLA DE CONTENIDO Pág. Introducción...3 Objetivos...4 Contenido...5 1. Introducción a

Más detalles

MANUAL DE INSTALACIÓN PLATAFORMA PROGRESA AUTOR: ASAC COMUNICACIONES DEPARTAMENTO DE DESARROLLO NOVIEMBRE DE 2007

MANUAL DE INSTALACIÓN PLATAFORMA PROGRESA AUTOR: ASAC COMUNICACIONES DEPARTAMENTO DE DESARROLLO NOVIEMBRE DE 2007 MANUAL DE INSTALACIÓN PLATAFORMA PROGRESA AUTOR: ASAC COMUNICACIONES DEPARTAMENTO DE DESARROLLO NOVIEMBRE DE 2007 INDICE 1 INTRODUCCIÓN...2 2 REQUISITOS...3 3 INSTALACIÓN...4 3.1 INSTALACIÓN DEL MICROSOFT.NET

Más detalles

Introducción para el programador de SharePoint. Laboratorio práctico

Introducción para el programador de SharePoint. Laboratorio práctico Introducción para el programador de SharePoint Laboratorio práctico Manual del laboratorio SPCHOL307 - Desarrollar soluciones de espacio aislado de SharePoint 2010 en Visual Studio 2010 - VB Este documento

Más detalles

1: La plataforma.net (.NET Framework)

1: La plataforma.net (.NET Framework) Programació amb C#.NET Jordi Linares i Pellicer 1: La plataforma.net (.NET Framework) Índice! Introducción! Características de.net! Componentes.NET! Plataforma.NET! Ejemplo Introducción! Microsoft.NET

Más detalles

Formacion a distancia de EXPERTO EN PROGRAMACION EN VISUAL BASIC.NET

Formacion a distancia de EXPERTO EN PROGRAMACION EN VISUAL BASIC.NET Instituto de Formación Profesional CBTech Aprender es Poder Formacion a distancia de EXPERTO EN PROGRAMACION EN VISUAL BASIC.NET 1 Programación en Visual Basic.NET Aplicaciones Windows Integrado como módulo

Más detalles

Introducción a macros en Excel 2007

Introducción a macros en Excel 2007 MACROS CON EXCEL Capítulo 1 Introducción a macros en Excel 2007 A lo largo de este primer capítulo comenzaremos a recorrer el camino de las macros en Excel 2007. Para eso, conoceremos las herramientas

Más detalles

Prof. Giovanni Francisco Sáenz Araica.

Prof. Giovanni Francisco Sáenz Araica. Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación Ingeniería en Computación Administradores de Bases de Datos Conexión de Bases de Datos: Bases de Datos llevadas a Visual Basic.Net

Más detalles

Ezra Federico Parra Juan José Garza Juan Antonio Vargas Omar Jasso

Ezra Federico Parra Juan José Garza Juan Antonio Vargas Omar Jasso Ezra Federico Parra Juan José Garza Juan Antonio Vargas Omar Jasso .NET es un proyecto de Microsoft para crear una nueva plataforma de desarrollo de software con énfasis en: La transparencia de redes Independencia

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO 02-2013 GUIA DE LABORATORIO #09 Nombre de la Práctica: ADO.NET: Conexión a base de datos. Lugar de ejecución: Centro

Más detalles

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET www.bmformacion.es info@bmformacion.es Objetivos Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION Ciclo 02/2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUÍA DE LABORATORIO #11 Nombre de la Práctica: ADO.NET y conexiones a Base de Datos. Parte III Lugar de ejecución:

Más detalles

Tema: Conexión a Base de Datos.

Tema: Conexión a Base de Datos. Sistemas Expertos e Inteligencia Artificial. Guía 6B 1 Tema: Conexión a Base de Datos. Facultad: Ingeniería Escuela: Computación Asignatura: Sistemas Expertos e Inteligencia Artificial Objetivo Específico

Más detalles

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form.

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form. Sistemas expertos e Inteligencia Artificial,Guía 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: INTRODUCCIÓN AL IDE C#. Objetivo Identificar

Más detalles

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD)

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) Resumen:En este tutorial, aprenderá a sacar el máximo partido a las capacidades de diseño integradas en Visual Studio 2005 para

Más detalles

2407: Programación en Microsoft C#, 2012 Edition

2407: Programación en Microsoft C#, 2012 Edition 2407: Programación en Microsoft C#, 2012 Edition Este curso práctico proporciona a los participantes el conocimiento profundo del lenguaje C# en su edición 2012, que les permitirá desarrollar la capa de

Más detalles

Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV

Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV En esta guía: Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV Clases de Acceso a datos ADO.Net en System.Data.SqlClient... 1 SqlConnection... 1 SqlCommand... 2 SqlDataAdapter... 3 Controles

Más detalles

Visual Studio 2008 es el conjunto de herramientas de

Visual Studio 2008 es el conjunto de herramientas de 1. VISUAL STUDIO 2008 Visual Studio 2008 es el conjunto de herramientas de desarrollo y programación creado por Microsoft tanto para aplicaciones Windows como aplicaciones web. La aparición de Visual Studio

Más detalles

Concurrencia en.net David Jesús Horat Flotats

Concurrencia en.net David Jesús Horat Flotats Concurrencia en.net David Jesús Horat Flotats ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización

Más detalles

I.- Objetivo. II.- Introducción

I.- Objetivo. II.- Introducción FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA PROGRAMACIÓN VISUAL Profr. Víctor Castillo PRÁCTICA No. 8 Creación de una conexión de datos usando acceso no conectado con ADO.NET ALUMNO: GRUPO: I.- Objetivo

Más detalles

Tècnic Auxiliar en Disseny Industrial - Manual Autocad 2011. Atributos. Un atributo es un objeto que se crea e incluye con una definición de bloque.

Tècnic Auxiliar en Disseny Industrial - Manual Autocad 2011. Atributos. Un atributo es un objeto que se crea e incluye con una definición de bloque. ATRIBUTOS Un atributo es un objeto que se crea e incluye con una definición de bloque. Los atributos pueden almacenar datos como números de serie, nombres de productos, etc. Ejemplos de algunas aplicaciones

Más detalles

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen C# Capítulo 1 C#.NET Este libro está dirigido a todas aquellas personas que desean aprender el lenguaje de programación C# y tienen conocimientos básicos de programación o no tienen ninguna experiencia

Más detalles

Tema: Desarrollo de aplicaciones con Visual Studio.net Parte II

Tema: Desarrollo de aplicaciones con Visual Studio.net Parte II Base de datos I. Guía 9 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Desarrollo de aplicaciones con Visual Studio.net Parte II Objetivo Específico Conocer lenguaje de programación

Más detalles

Acceso a base de datos SQLite desde Gambas

Acceso a base de datos SQLite desde Gambas Acceso a base de datos SQLite desde Gambas Prof: Mileti, P. Si deseamos realizar una pequeña aplicación en Gambas que trabaje con una base de datos local (alojada en el mismo disco rígido que nuestra aplicación),

Más detalles

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET LA PLATAFORMA.NET La plataforma.net de Microsoft está diseñada para que se puedan desarrollar componentes software utilizando casi cualquier lenguaje de programación, de forma que lo que escribamos en

Más detalles

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Técnico Especialista TIC en Desarrollo de Aplicaciones de Escritorio y Acceso a Datos con.net TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Técnico

Más detalles

Acceso a Datos con ADO.NET

Acceso a Datos con ADO.NET Acceso a Datos con ADO.NET ADO.NET constituye la interfaz fundamental de las aplicaciones para proporcionar servicios de acceso a datos en la plataforma Microsoft.NET, donde existen, básicamente, dos elementos:

Más detalles

Acceso a Datos. Visual Basic.NET 2005

Acceso a Datos. Visual Basic.NET 2005 Acceso a Datos Visual Basic.NET 2005 Capítulo I Acceso a datos Lectura de datos Inserción Actualización Eliminación Acceso a datos En este capítulo realizaremos una conexión, lectura, inserción, actualización

Más detalles

ESPECIALISTA EN TECNOLOGIA.NET

ESPECIALISTA EN TECNOLOGIA.NET ESPECIALISTA EN TECNOLOGIA.NET MÓDULOS Requisitos Duración Visual Basic.Net ADO.Net Visual C Sharp.Net ASP.Net Windows Communication Foundation 4 semanas 3 semanas 3 semanas 4 semanas 2 semanas Nociones

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

APLICACIÓN COMPRAS EN SQLSERVER 2000

APLICACIÓN COMPRAS EN SQLSERVER 2000 APLICACIÓN COMPRAS EN SQLSERVER 2000 (Libro de apoyo: Iniciación a las bases de datos con Access 2002. Eduardo Mora, Marta Zorrilla, Joaquín Díaz de Entresotos. Díaz de Santos, 2003) A continuación se

Más detalles

COMANDOS VISUAL BASIC. Comandos Básicos De Visual Basic. Programación Básica

COMANDOS VISUAL BASIC. Comandos Básicos De Visual Basic. Programación Básica Comandos Básicos De Visual Basic Programación Básica MANEJO DE ARCHIVOS Abrir para Lectura Open Archivo For Input As Numero Abrir para Escritura Open Ruta.Text For Output As Numero Fin del Archivo Booleano

Más detalles

Gestión Documental ERP

Gestión Documental ERP N. Documento Revisión Nº: 1.0 Fecha: 30/03/11 Introducción 1 Configuración de la Gestión Documental ERP 2 Funcionamiento de la Gestión Documental ERP 6 ÍNDICE Introducción El programa Ahora permite una

Más detalles

Bases de Datos en VB.Net

Bases de Datos en VB.Net Bases de Datos en VB.Net 2007 Justo Sáez Arenas http://vb.jsaez.com/ Contenidos: Introducción... 2 Herramientas visuales... 2 Conexión... 2 Adaptador de Datos...3 Conjunto de Datos...3 Enlazado de Controles

Más detalles

Microsoft. Febrero de 2006

Microsoft. Febrero de 2006 Microsoft Febrero de 2006 Tabla de contenido Información general de Microsoft Office InfoPath 2007...1 Incorpore eficacia a sus formularios comerciales...1 Amplíe el alcance de sus formularios comerciales...2

Más detalles

Tema: Creacion de una base de datos utilizando sintaxis Sql.

Tema: Creacion de una base de datos utilizando sintaxis Sql. Base de datos I. Guía 4 1 INSAFOR Tema: Creacion de una base de datos utilizando sintaxis Sql. Objetivo Específico Comprender la sintaxis SQL para crear base de datos y tablas Crear una base de datos con

Más detalles

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: TRABAJO BIBLIOGRAFICO DE, CONCEPTOS, IMÁGENES, EJEMPLOS,

Más detalles

La biblia de Delphi 8.NET Francisco Charte Ojeda

La biblia de Delphi 8.NET Francisco Charte Ojeda Agradecimientos La biblia de Delphi 8.NET Francisco Charte Ojeda Introducción Características de Delphi 8.NET Por qué cambiar a Delphi 8.NET? Y por qué no hacerlo? Requerimientos hardware y software Ediciones

Más detalles

Práctica1. Introducción a Microsoft Access. Qué es Access?

Práctica1. Introducción a Microsoft Access. Qué es Access? Práctica1. Introducción a Microsoft Access Los sistemas de información empresariales tienen como misión el proporcionar información precisa en el momento adecuado, tanto para la gestión y realización de

Más detalles

MANUAL DE ACCESO A DATOS CON VB.NET PRIMERA PARTE

MANUAL DE ACCESO A DATOS CON VB.NET PRIMERA PARTE MANUAL DE ACCESO A DATOS CON VB.NET PRIMERA PARTE Autor : Christian Rodriguez Olmos Mail : tantanatan@hotmail.com Fecha : 27 de Junio de 2007 Inicio 21:25 hrs. Termino 01:53 hrs. Muchos hemos pasado por

Más detalles

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario 5.1 Introducción Para la comunicación entre SATEDU y su estación terrena se necesita ajustar ciertos parámetros de comunicación de la Tarjeta de Comunicaciones como la tasa de transmisión, el número de

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO

INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO El objetivo de esta sencilla guía es el de describir los procedimiento básicos

Más detalles

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005 4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005 Introducción Este curso de cinco días impartido por instructor permite a desarrolladores de nivel

Más detalles

Microsoft.Net. Programación III ISBO EMT CETP - 2013. Prof. L. Carámbula

Microsoft.Net. Programación III ISBO EMT CETP - 2013. Prof. L. Carámbula Microsoft.Net Microsoft.Net.NET es un framework de Microsoft Frame marco Work trabajo Este marco de trabajo brinda: transparencia de redes independencia de plataforma de hardware rápido desarrollo de aplicaciones

Más detalles

Practica 11: Conexión de Java con Bases de datos Access

Practica 11: Conexión de Java con Bases de datos Access Practica 11: Conexión de Java con Bases de datos Access En esta práctica vamos a crear una base de datos Microsoft Access y luego vamos a conectarnos desde una aplicación java haciendo uso del puente JDBC-ODBC

Más detalles

Tema: Creacion de una base de datos utilizando sintaxis Sql.

Tema: Creacion de una base de datos utilizando sintaxis Sql. Base de datos I. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Creacion de una base de datos utilizando sintaxis Sql. Objetivo Específico Comprender la sintaxis SQL

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 Tema: INICIO, USUARIOS Y LISTADO DE PRIMARIAS CON VISUAL BASIC.NET Objetivo: Programar el ingreso a una aplicación realizando verificación de usuarios /contraseñas y cargar listados de llaves

Más detalles

PROGRAMACIÓN DE UN SERVIDOR WEB EN HTML

PROGRAMACIÓN DE UN SERVIDOR WEB EN HTML PROGRAMACIÓN DE UN SERVIDOR WEB EN HTML AUTORÍA JOSÉ RUIZ DÍAZ TEMÁTICA TECNOLOGÍA ETAPA 2º BACHILLERATO RESUMEN En el presente libro se pretende crear un servidor HTML que sea capaz de entregar datos

Más detalles