libro manejo de archivos visual basic net 2010

download libro manejo de archivos visual basic net 2010

If you can't read please download the document

  • date post

    14-Dec-2014
  • Category

    Software

  • view

    1.139
  • download

    17

Embed Size (px)

description

manejo de archivos de texto y binarios al igual que enlaces a bases de datos y mas

Transcript of libro manejo de archivos visual basic net 2010

  • 1. 1 Manejo de datos con Visual Basic y ASP .NET Carlos Alberto Vanegas Ingeniero de Sistemas Especialista en Ingeniera de Software Maestra en Ingeniera de Sistemas Profesor ctedra, Universidad Libre Profesor, Universidad Distrital Francisco Jos de Caldas Bogot agosto 2010

2. 2 3. 3 Contenido PRLOGO .................................................................................................................................... 6 INTRODUCCIN........................................................................................................................... 8 1. MANEJO DE ARCHIVOS........................................................................................................ 11 1.1 Clase File ................................................................................................................... 11 1.1.1 Ejemplo clase File.................................................................................................. 12 1.2 Clases StreamWriter y StreamReader ...................................................................... 17 1.2.1 Ejemplo clases StreamWriter y StreamReader..................................................... 17 1.3 Controles OpenFileDialog y SaveFileDialog.............................................................. 20 1.3.1 Ejemplo con los controles OpenFileDialog y SaveFileDialog ............................... 20 1.4 Archivos secuenciales ............................................................................................... 24 1.4.1 Ejemplo de archivos secuenciales ........................................................................ 24 1.5 Archivos binarios........................................................................................................ 29 1.5.1 Ejemplo de archivos binarios................................................................................. 29 1.6 Importar y exportar datos de una hoja de Excel........................................................ 32 16.1 Ejemplo importar y exportar datos de Excel.......................................................... 32 1.7 Exportar datos a Word ............................................................................................... 38 1.7.1 Ejemplo de exportar datos de VB.NET a Word..................................................... 38 1.8 Ejercicios de archivos ................................................................................................ 43 2. BASES DE DATOS ................................................................................................................. 44 2.1 Tipos de bases de datos............................................................................................ 44 2.1.1 Relacionales .......................................................................................................... 44 2.1.2 Orientada a objetos ............................................................................................... 44 2.2 Lenguaje de Consulta Estructurado (S.Q.L.)............................................................. 44 2.2.1 Comandos ............................................................................................................. 45 2.2.2 Clusulas ............................................................................................................... 45 2.2.3 Operadores lgicos................................................................................................ 46 2.2.4 Operadores de Comparacin ................................................................................ 46 2.2.5 Funciones de agregado......................................................................................... 46 2.3 Sentencias Bsicas SQL ........................................................................................... 47 2.3.1 CREATE DATABASE............................................................................................ 47 2.3.2 DROP DATABASE ................................................................................................ 48 2.3.3 CREATE TABLE.................................................................................................... 48 2.3.4 DROP TABLE........................................................................................................ 48 2.3.5 INSERT.................................................................................................................. 48 2.3.6 ALTER ................................................................................................................... 48 2.3.7 SELECT................................................................................................................. 49 2.3.8 DELETE................................................................................................................. 50 2.3.9 UPDATE ................................................................................................................ 50 2.3.10 INNER JOIN ...................................................................................................... 51 2.4 Conexin a bases de datos ....................................................................................... 52 2.5 Ejemplos de conexin a bases de datos ................................................................... 52 2.5.1 Conexin a una base de datos de SQL Server..................................................... 52 2.5.2 Conexin a una base de datos de ACCESS......................................................... 56 2.5.3 Conexin a una base de datos de ORACLE con cdigo ...................................... 59 2.6 Conexin a una bases de datos con el Explorador de servidores ............................ 63 2.6.1 Conexin a SQL Server con el Explorador de servidores..................................... 63 2.7 Ejercicios de conexin a bases de datos................................................................... 71 3. DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA............................................. 72 3.1 Ejemplos de desplazamiento por los registros de una tabla ..................................... 72 3.1.1 Formulario con campos de texto y botones .......................................................... 72 3.1.2 Formulario con una cuadrcula y botones ............................................................. 82 3.1.2 Formulario con una cuadrcula y un control BindingNavigator.............................. 85 3.2 Ejercicios de desplazamiento por los registros de una tabla..................................... 92 4. 4 4. OPERACIONES CON TABLAS DE UNA BASE DE DATOS............................................. 93 4.1 Ejemplos de operaciones con tablas de una base de datos ..................................... 93 4.1.1 Insertar registros en una tabla utilizando campos de texto................................... 93 4.1.2 Insertar registros en una tabla utilizando un DataGridView .................................. 96 4.1.3 Buscar registros por un campo especfico .......................................................... 101 4.1.4 Buscar registros por cualquier campo de una tabla ............................................ 104 4.1.5 Buscar registros mientras se escribe .................................................................. 107 4.1.6 Ejecutar instrucciones SQL sobre una base de datos ........................................ 111 4.1.7 Eliminar registros de una tabla ............................................................................ 113 4.1.8 Actualizar registros de una tabla ......................................................................... 117 4.1.9 Generar un reporte de los registros de una tabla................................................ 120 4.2 Ejercicios de operaciones con tablas de una base de datos................................... 131 5. MANEJO DE RELACIONES ENTRE TABLAS EN UNA BASE DE DATOS ................... 132 5.1 Ejemplos de relacin de tablas de una base de datos ............................................ 132 5.1.1 Visualizar registros de tablas relacionadas ......................................................... 132 5.1.2 Relacin de tablas utilizando dos DataGridView................................................. 135 5.1.3 Relacin de tablas utilizando ComboBox............................................................ 138 5.1.4 Reporte con tablas relacionadas ......................................................................... 147 5.2 Ejercicios de relacin de tablas ............................................................................... 162 6. MANEJO DE ARCHIVOS CON ASP.NET ....................................................................... 163 6.1 Manejo de Archivos de texto con ASP.NET. ........................................................... 163 6.2 Ejemplos de manejo de archivos con ASP.NET...................................................... 164 6.2.1 Cargar archivo con el control FileUpLoad. .......................................................... 164 6.2.2 Manejo de archivos de texto con StreamWriter y StreamReader. ...................... 168 6.2.3 Guardar /Leer Archivo de texto con FileSystem.................................................. 171 6.3 Ejercicios de archivos de texto con ASP.NET ......................................................... 175 7. BASE DE DATOS CON ASP.NET ................................................................................... 176 7.1 Ejemplos de manipulacin de bases de datos con ASP.NET ................................. 176 7.1.1 Pagina Web con los campos de una tabla .......................................................... 176 7.1.2 Conexin a una base de datos desde un Formulario Web ................................. 180 7.1.3 Conexin a SQL Server con el control DetailsView ............................................ 183 7.1.4 Pgina Web con desplazamiento de registros .................................................... 192 7.1.5 Pgina Web para insertar registros en una tabla ................................................ 200 7.1.6 Pagina Web para eliminar registros de una tabla ............................................... 210 7.1.7 Pgina Web para modificar registros .................................................................. 215 7.1.8 Pgina Web con un informe de los registros de una tabla.................................. 220 7.2 Ejercicios de bases de datos con ASP.NET............................................................ 231 8. MANEJO DE TABLAS RELACIONADAS CON ASP.NET............................................... 232 8.1 Ejemplos de relacin entre tablas de una base de datos con ASP.NET ................ 232 8.1.1 Relacin de dos tablas con DropDownList y GridView ....................................... 232 8.1.2 Relacin de tablas utilizando GridView y FormView ........................................... 246 8.1.3 Pgina Web con tres tablas relacionadas ........................................................... 261 8.2 Ejercicios relacin de tablas con ASP.NET ............................................................. 278 ANEXO A CREACIN DE APLICACIONES WINDOWS FORMS ........................................... 279 A.1 Crear un nuevo proyecto Visual Basic .NET (Windows Forms) ............................... 279 A.2 Elegir plantilla de aplicaciones ................................................................................... 280 A.3 Crear la interfaz de usuario........................................................................................ 283 A.4 Establecer las propiedades de los controles ............................................................. 284 A.5 Escribir cdigo............................................................................................................ 285 A.6 Guardar la aplicacin ................................................................................................. 286 A.7 Ejecutar la aplicacin Windows Forms ...................................................................... 286 A.8 Cerrar y abrir un proyecto .......................................................................................... 287 ANEXO B CREACIN DE APLICACIONES WEB ASP.NET................................................... 288 B.1 Crear un nuevo Sitio Web (ASP.NET) ...................................................................... 288 5. 5 B.2 Elegir plantilla de aplicaciones ................................................................................... 289 B.3 Crear la interfaz de usuario........................................................................................ 293 B.4 Establecer las propiedades de los controles. ............................................................ 294 B.5 Escribir cdigo............................................................................................................ 295 B.6 Ejecutar la aplicacin Web......................................................................................... 298 B.7 Cerrar y abrir un sitio Web ......................................................................................... 300 ANEXO C SQL SERVER .......................................................................................................... 301 C.1. Conectarse a SQL Server......................................................................................... 301 C.2 Crear una base de datos ........................................................................................... 302 C.3 Crear tablas en la base de datos............................................................................... 304 C.4 Crear Diagramas de una base de datos.................................................................... 312 C.5 Crear una vista........................................................................................................... 316 ANEXO D ORACLE DATABASE 10G EXPRESS .................................................................... 320 D.1 Instalacin .................................................................................................................. 320 D.2 Creacin de una tabla en la base de datos con usuario system ............................... 325 NDICE ...................................................................................................................................... 332 BIBLIOGRAFA.......................................................................................................................... 334 INFOGRAFA............................................................................................................................. 334 6. 6 PRLOGO Manejo de datos con Visual Basic y ASP .NET proporciona los elementos necesarios para el manejo de datos desde el entorno del lenguaje de Programacin Visual Basic .NET con aplicaciones Windows Forms y ASP. Este libro ha sido pensado para todos aquellos que estn interesados en conocer cmo se puede guardar o recuperar informacin desde archivos de texto plano, importar o exportar desde Visual Basic .NET datos a otros programas como Excel, Word, etc... Adems realizar la conexin a diferentes bases de datos, desplazarse entre los registros de una tabla, realizar operaciones entre tablas y la relacin de stas. El material didctico del libro se basa en el aprendizaje guiado por la conceptualizacin de cada tema, la realizacin de ejemplos prcticos explicados y con grficos 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 mayora de los ejemplos tambin 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 programacin Visual Basic en el entorno .NET, es decir, en este libro se supone que el lector tiene conocimiento sobre los conceptos bsicos de programacin 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). Adems, que tenga conocimientos sobre programacin orientada a objetos. Tambin es recomendable tener nociones concernientes al lenguaje estructurado de consulta SQL y HTML. Por otro lado, es indispensable que tenga la conceptualizacin terica y ojal prctica de bases de datos. Captulos del libro Manejo de datos con Visual Basic y ASP .NET contiene 8 captulos y 4 anexos distribuidos de la siguiente forma: Captulo 1, Manejo de Archivos: Se conceptualiza sobre las clases File, StreamWriter, StreamReader, los controles OpenFileDialog y SaveFileDialog, como tambin los conceptos de archivos secuenciales y binarios. Adems, cmo importar y exportar datos. Todo esto apoyado con ejemplos explicados sobre cada tema. Captulo 2, Bases de datos: Se trabajan los conceptos bsicos de bases de datos, as como tambin se realiza una descripcin del lenguaje estructurado de consulta SQL. Adems se realizan ejemplos de sentencias bsicas de SQL. Por otro lado, se desarrollan ejemplos para obtener la conexin a las bases de datos SQL Server, Access y Oracle. Captulo 3, Desplazamiento por los registros de una tabla: Bsicamente lo que se realiza en este captulo son diversos ejemplos que permiten el desplazamiento entre los registros de una tabla perteneciente a una base de datos. 7. 7 Captulo 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 operacin es ilustrada con ejemplos debidamente explicados. Captulo 5, Manejo de las relaciones de tablas en una base de datos: Aqu se conceptualiza y se crean ejemplos sobre la relacin de tablas de una base de datos utilizando diferentes controles que ofrece Visual Basic .NET, as como la creacin de reportes con tablas relacionadas. Captulo 6, Manejo de Archivos con ASP.NET: Se conceptualiza sobre ASP. NET, como tambin se crean diversos ejemplos de escritura y lectura de archivos de texto plano en una aplicacin Web. Captulo 7, Bases de datos con ASP.NET: Se disean ejemplos ilustrativos sobre la operacin y manipulacin de los registros de una tabla utilizando una aplicacin Web. Con los ejemplos se puede verificar la estructura de una tabla, la conexin a una base de datos con distintos controles, el desplazamiento de registros y las operaciones de insercin, eliminacin, modificacin de registros, como tambin la creacin de reportes. Captulo 8, Manejo de tablas relacionadas con ASP.NET: En este captulo se disearon ejemplos que permiten obtener la relacin entre tablas en aplicaciones Web utilizando diferentes controles de Visual Basic. NET. Anexo A: Se explica en forma breve cmo se crean proyectos Windows Forms, el diseo de la interfaz de usuario, la modificacin de los controles del proyecto, la escritura de cdigo, as como guardar y ejecutar un proyecto Windows Forms. Adems, cmo cerrar y/o abrir un proyecto Windows Forms. Anexo B: Se explica cmo se crean nuevos sitios Web, el diseo de la interfaz de usuario, la modificacin de los controles del sitio Web, la escritura de cdigo y la ejecucin de un sitio Web. Adems, cmo cerrar y/o abrir un sitio Web. Anexo C: Se explica cmo se realiza la conexin a SQL Server, as como la creacin de una base de datos, la creacin de tablas, diagramas y vistas dentro de la base de datos. Anexo D: En este anexo se explica cmo se realiza la instalacin de la base de datos Oracle Database 10g Express Edition; tambin, cmo se crea e insertan datos en una tabla de dicha base de datos. Como apoyo complementario a esta publicacin se ha incluido un CD que contiene cada uno de los captulos del libro, los anexos explicativos del software que se utiliz, el cdigo fuente de todos los ejemplos mostrados en el libro por captulo, as como el software utilizado y otros aspectos de inters. Adems se incluye el documento en pdf. Si al insertar el CD no se ejecuta automticamente, el usuario deber abrir el archivo inicio.html que se encuentra en el directorio raz del CD. Una vez abierto, se podr ver la pgina de inicio; pulse la imagen Manejo de datos con Visual Basic y ASP.NET, se visualizar la pgina principal donde encontrar los vnculos para cada captulo, los anexos, el software, los archivos con el cdigo fuente y el documento del libro. 8. 8 INTRODUCCIN Visual Basic .NET (VB.NET) es una versin de Visual Basic enfocada al desarrollo de aplicaciones .NET, e implementada sobre el Framework.NET (ms adelante se explica este tema). Dicho lenguaje de programacin es orientado a objetos, donde es posible la creacin de clases que pueden derivarse de otras mediante herencia, la sobrecarga de mtodos, el control estructurado de excepciones o la creacin de aplicaciones con mltiples hilos de ejecucin, adems de contar con la extensa librera 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 envo de datos mediante documentos XML1 y la generacin 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 tambin 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 ejecucin, compilacin, depuracin y desarrollo de aplicaciones. Los diferentes lenguajes de programacin de la plataforma comparten el mismo entorno, normas, reglas y libreras de Microsoft .NET Framework. La plataforma .NET proporciona software que permite conectar sistemas, informacin, dispositivos y usuarios distintos de un modo ms unificado y personalizado. Incorpora servicios Web XML como medio para permitir la interoperabilidad entre tecnologas diferentes. Tambin proporciona a los desarrolladores de software las herramientas y la tecnologa para crear rpida y eficazmente soluciones de negocio que abarcan mltiples aplicaciones y mltiples dispositivos cliente entre diversas organizaciones, adems permite a los usuarios controlar qu informacin, cmo y cundo se les entrega. Sus componentes de trabajo son: El conjunto de lenguajes de programacin: adems del Visual Basic, la plataforma .NET puede trabajar los lenguajes de programacin C++, C#, J# entre otros. La biblioteca de clases base o BCL: maneja las operaciones bsicas involucradas en el desarrollo de aplicaciones, algunas operaciones son: interaccin con dispositivos perifricos, manejo de datos, administracin de memoria, administracin de componentes Web, herramientas graficas, operaciones matemticas, generacin de cdigo, etc. La BCL se clasifica en: .NET, Windows Forms, ASP.NET, ADO.NET. El entorno comn para ejecucin de lenguajes o CLR (Common Language Runtime) es el entorno de ejecucin en donde se cargan las aplicaciones desarrolladas en los diferentes lenguajes. Esta herramienta compila el cdigo fuente de los lenguajes soportados por .NET en un cdigo intermedio (Microsoft Intermediate Language MSIL o CIL2 ). Para generarlo, el compilador se basa en 1 XML es el estndar de Extensible Markup Language. XML no es ms que un conjunto de reglas para definir etiquetas semnticas 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. 9. 9 la especficacin CLS (Common Language Specification) que determina las reglas necesarias para crear el cdigo MSIL compatible con el CLR. Adems, para ejecutarse necesita un compilador JIT3 (Just-In-Time) el cual genera el cdigo mquina4 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 programacin diseados para simplificar el desarrollo de aplicaciones sobre el entorno distribuido de Internet. El diseo de .NET Framework est enfocado a cumplir los objetivos siguientes: Proporcionar un entorno coherente de programacin orientada a objetos, en el que el cdigo de los objetos se pueda almacenar y ejecutar en forma local pero distribuida en Internet o ejecutar en forma remota. Proporcionar un entorno de ejecucin de cdigo que reduzca lo mximo posible la implementacin de software y los conflictos de versiones. Ofrecer un entorno de ejecucin de cdigo que fomente la ejecucin segura del mismo, incluso del creado por terceras personas desconocidas o que no son de plena confianza. Proporcionar un entorno de ejecucin de cdigo que elimine los problemas de rendimiento de los entornos en los que se utilizan secuencias de comandos o intrpretes 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 ejecucin se puede considerar como un agente que administra el cdigo en tiempo de ejecucin y proporciona servicios centrales, como la administracin de memoria, la administracin de subprocesos y la interaccin remota, al tiempo que aplica una seguridad estricta a los tipos y otras formas de especficacin del cdigo que fomentan su seguridad y solidez. De hecho, el concepto de administracin de cdigo es un principio bsico del motor en tiempo de ejecucin. El cdigo destinado al motor en tiempo de ejecucin se denomina cdigo administrado, a diferencia del resto de cdigo, que se conoce como cdigo no administrado. La biblioteca de clases, el otro componente principal de .NET Framework, es una completa coleccin orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas de interfaz grfica de usuario (GUI) o de lnea de comandos hasta las 3 Tcnica para mejorar el rendimiento de sistemas de programacin que compilan a bytecode, consistente en traducir el bytecode a cdigo mquina nativo en tiempo de ejecucin. 4 Sistema de cdigos directamente interpretable por un circuito microprogramable, como el microprocesador de un computador o el microcontrolador de un autmata (un PLC). Este lenguaje est compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. 10. 10 aplicaciones basadas en las innovacones ms recientes proporcionadas por ASP.NET, como los formularios Web Forms y los servicios Web XML. En la ilustracin siguiente se muestra la relacin de Common Language Runtime y la biblioteca de clases con las aplicaciones y el sistema en su conjunto. .NET Framework en contexto. 11. 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 magnticos, pticos y cintas magnticas. Para procesar archivos en Visual Basic .NET se debe hacer uso del espacio de nombres5 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, adems, de clases para las operaciones de rutas de acceso y la manipulacin 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. Tambin con la clase File se puede obtener y definir atributos del archivo o informacin relacionada con la hora y fecha de creacin, 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 abstraccin de una secuencia de bytes, como un archivo, un dispositivo de entrada/salida, un canal de comunicacin interprocesos o un socket TCP/IP. La clase Stream y sus clases derivadas proporcionan una visin genrica de diferentes tipos de entrada y salida, aislando al programador de los detalles especficos del sistema operativo y sus dispositivos subyacentes. Algunos mtodos de la clase File son: Tabla 1.1 Mtodos de la clase File. Mtodo Proceso CreateText(ruta) Crea o abre un archivo para escribir texto. Create(ruta) Crea un archivo en la ruta especficada AppendText Anexa texto a un archivo de texto existente. Delete Elimina un archivo existente. Copy Copia un archivo Exists Determina si existe un archivo especfico. Open Abre un archivo de texto existente Move Mueve un archivo a un sitio especfico. GetCreateTime Devuelve la hora y la fecha de la creacin de un archivo. Replace Reemplaza el contenido de un archivo en otro. 5 Se usan para agrupar clases y otros tipos de datos que estn relacionados entre s. 12. 12 1.1.1 Ejemplo clase File Hacer un nuevo proyecto llamado GuardarbrirConFile y realizar un programa que permita a un usuario guardar informacin en un archivo de texto plano, recuperar la informacin de ste, as como adicionarle informacin utilizando la clase File. NOTA: Si lo considera necesario puede revisar el Anexo A, donde se explica brevemente la creacin, la interfaz de usuario, el establecimiento de propiedades a los controles, la escritura de cdigo, la ejecucin de un nuevo proyecto Windows Forms. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 2 TextBox, 3 Button. Figura 1.1 Interfaz de usuario (GuardarbrirConFile). 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 GuardarbrirConFile. 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 13. 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 (GuardarbrirConFile). Escribir cdigo 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 cdigo escriba imports System.IO. El cdigo 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 mtodos de la clase File. b) En modo diseo del formulario, seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo botonguardar_Click y escriba el siguiente cdigo: Try Dim escribir As StreamWriter escribir = File.CreateText("c:datosentexto.txt") escribir.Write(texto.Text) escribir.Close() texto.Text = "" 14. 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 prctica cuando se estn realizando operaciones de entrada/salida para evitar salidas anormales del sistema. En el bloque Try se establece el cdigo que realiza una tarea especfica y que en un caso dado puede generar un error; en el bloque Catch ir el cdigo 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 creacin del archivo de texto c:datosentexto.txt por medio del mtodo createText de la clase File. Utilizando el mtodo write y envindole como parmetro el contenido del control llamado texto, se guarda la informacin en el archivo especficado. Por otro lado, se cierra el archivo utilizando el mtodo 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 cdigo botonabrir_Click y escriba el siguiente cdigo: 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 mtodo openText de la clase File. Utilizando el mtodo 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 mtodo close (). En el bloque Catch si se genera algn error se mostrar el mensaje Error al leer el archivo. d) Seleccione el objeto botonadicionar, d doble clic para abrir el editor de cdigo botonadicionar_Click y escriba el siguiente cdigo: 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 15. 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 adicin del texto al archivo c:datosentexto.txt por medio del mtodo AppendText de la clase File. Utilizando el mtodo WriteLine y envindole como parmetro el contenido del control llamado textoadicional, se adiciona la informacin al final del archivo especficado. Por otro lado se cierra el archivo utilizando el mtodo close () y se limpia el objeto textoadicional. En el bloque Catch si se genera algn 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 botn Guardar en archivo en el objeto texto, dicha figura quedara as: Figura 1.3 Ejecucin aplicacin AbrirGuardarConFile. Al pulsar el botn Guardar en Archivo, se crear en C: el archivo datosentexto.txt y el objeto texto se limpiar. Mostrndose la siguiente caja de texto: Figura 1.4 Mensaje de texto guardado en el archivo datosentexto.txt. 16. 16 Pulse el botn Aceptar para cerrar dicha caja. Al pulsar el botn Leer Archivo, se visualizar nuevamente la figura 1.3. Si se adiciona el texto adicionando texto al archivo que previamente haba 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 botn Adicionar Texto, y nuevamente pulse el botn Leer Archivo para visualizar la siguiente figura: Figura 1.6 Lectura del archivo con el texto adicional. 17. 17 1.2Clases 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 opcin ms para la manipulacin de archivos de texto plano. Esta clase, entre otros, contiene el mtodo ReadToEnd cuyo objetivo es leer un archivo desde una posicin inicial hasta el final. La Clase StreamWriter (flujo de escritura) est diseada para la salida de caracteres. Esta clase contiene entre otros el mtodo Write para escribir informacin en el archivo. 1.2.1 Ejemplo clases StreamWriter y StreamReader Crear un proyecto llamado GuardarbrirArchivoTexto y hacer un programa que permita a un usuario guardar informacin 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 especfico y ubique los siguientes controles en el formulario en la posicin deseada: 1 Label, 1 TextBox, 2 Button. Figura 1.7 Interfaz de usuario (GuardarbrirArchivoTexto). Establecer las propiedades de los objetos de la interfaz de usuario Para el caso del ejemplo, establezca las siguientes modificaciones a los controles: 18. 18 Tabla 1.3 Propiedades de los controles del proyecto GuardarbrirArchivoTexto. 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 (GuardarbrirArchivoTexto). Escribir cdigo a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 asignndosele un espacio de memoria de tipo System.IO.StreamWriter (), al cual se le enva como parmetro el nombre del archivo (archivotexto.txt). Dicho archivo estar ubicado en la carpeta 19. 19 bindebug del proyecto. Utilizando el mtodo Write se escribe el contenido del objeto texto en el archivo. Por otro lado se cierra el archivo utilizando el mtodo close () y se limpia el objeto texto. b) Seleccione el objeto botonabrir, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 asignndosele un espacio de memoria de tipo System.IO.StreamWriter (). Utilizando el mtodo 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 adicionrsele el texto El amor es el principio de todo, la razn de todo, el fin de todo en el objeto llamado texto, el formulario presentara el siguiente aspecto: Figura 1.9 Ejecucin aplicacin GuardarbrirArchivoTexto. Al pulsar el botn 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 botn Abrir Archivo de texto, se cargar en el objeto texto el contenido del archivo de texto. 20. 20 1.3 Controles OpenFileDialog y SaveFileDialog Los controles OpenFileDialog y SaveFileDialog del cuadro de herramientas de Visual Basic .NET /2008, son cuadros de dilogo que permiten abrir y guardar archivos, respectivamente. El control OpenFileDialog representa un cuadro de dilogo para seleccionar un archivo que ser abierto. El control SaveFileDialog representa un cuadro de dilogo 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 dilogo modal; por tanto, al mostrarse, bloquea el resto de la aplicacin hasta que el usuario haya elegido un archivo o cancelado la operacin. 1.3.1 Ejemplo con los controles OpenFileDialog y SaveFileDialog Realizar un proyecto llamado GuardarbrirConControles y disear un programa que permita a un usuario guardar informacin 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 especfico y ubique los siguientes controles en el formulario en la posicin deseada: 2 Label, 1 TextBox, 2 Button, 1 OpenFileDialog y 1 SaveFileDialog. Figura 1.10 Interfaz de usuario (GuardarbrirArchivoConControles) Establecer las propiedades de los objetos de la interfaz de usuario Establezca las siguientes modificaciones a los controles: 21. 21 Tabla 1.4 Propiedades de controles proyecto GuardarbrirArchivoConControles. 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 guardarrchivo OpenFileDialog1 Name abrirrchivo 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 (GuardarbrirArchivoconControles). Escribir cdigo a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 22. 22 guardarrchivo.Filter = "Archivos de texto (*.txt)| *.txt" guardarrchivo.ShowDialog() If guardarrchivo.FileName "" Then Try Dim guardar As IO.StreamWriter guardar = New IO.StreamWriter(guardarrchivo.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 informacin") End If En el anterior cdigo se utiliza la propiedad Filter del control guardarrchivo para que cuando se abra el cuadro de dilogo solamente se visualicen los archivos con extensin .txt. El mtodo ShowDialog permite abrir el cuadro de dilogo. Utilizando la estructura if se pregunta si el nombre de archivo es diferente de vaco utilizando la propiedad FileName. Si se cumple la condicin se crea un objeto llamado guardar de tipo IO.StreamWriter al cual se le asigna espacio de memoria envindole como parmetro el nombre del archivo por intermedio de la propiedad FileName del control guardarrchivo. Por otro lado, se utiliza el mtodo Write para guardar el contenido del objeto texto; luego se cierra el objeto con el mtodo 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 vaco o no contiene informacin. b) Seleccione el objeto botonabrir, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: abrirrchivo.Filter = "Archivos de texto (*.txt)| *.txt" abrirrchivo.ShowDialog() If abrirrchivo.FileName "" Then Try Dim verarchivo As New IO.StreamReader(abrirrchivo.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 informacin") End If Utilizando la estructura if se pregunta si el nombre de archivo es diferente de vaco. Si se cumple la condicin se crea un objeto llamado verarchivo de tipo IO.StreamReader al cual se le asigna espacio de memoria envindole como parmetro el nombre del archivo por intermedio de la propiedad FileName del control abrirrchivo. Por otro lado, se utiliza el mtodo ReadToEnd para leer el archivo y asignarle el contenido al objeto texto, luego se cierra el objeto con el mtodo close (). Si, por el contrario, no contiene informacin, se mostrar un mensaje informando que el archivo esta vaci. 23. 23 Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET se visualizar la figura 1.11. Al pulsar el botn Abrir Archivo de Texto se visualizar el cuadro de dilogo de Abrir. Se debe seleccionar un archivo de texto y pulsar el botn del cuadro de dilogo Abrir. Figura 1.12 Cuadro de Dilogo control abrirrchivo. El formulario presentara un aspecto similar: Figura 1.13 Formulario con archivo de texto abierto. Al pulsar el botn Guardar Archivo de Texto se visualizar el cuadro de dilogo de Guardar como, donde se deber digitar el nombre del archivo a guardar y pulsar el botn del cuadro de dilogo Guardar. Si el archivo ya existe, preguntar si desea sobrescribirlo. 24. 24 Figura 1.14 Cuadro de dilogo control guardar archivo. 1.4 Archivos secuenciales Otra forma de guardar o leer informacin de un archivo de texto plano es utilizar archivos secuenciales. Los archivos secuenciales se denominan de esta manera porque para guardar y leer la informacin 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 especficar si se va a escribir en el archivo (Input), si se va a leer el archivo (Output) o si se va a adicionar informacin al archivo (Append). Para accesar a un archivo secuencial se utiliza la funcin 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 instruccin FileOpen primero crea el archivo y a continuacin lo abre. Una vez que se abre un archivo para una operacin Input, Output o Append, debe cerrarse con la instruccin FileClose antes de volver a abrirlo para realizar otro tipo de operacin. 1.4.1 Ejemplo de archivos secuenciales Crear un proyecto llamado ArchivosSecuenciales y realizar un programa que permita a un usuario guardar informacin en un archivo de texto plano, leer la informacin de ste, as como adicionarle ms informacin a dicho archivo utilizando archivos secuenciales. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin deseada: 4 Label, 3 TextBox, 3 Button. 25. 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. 26. 26 La interfaz de usuario queda como se muestra en la siguiente figura: Figura 1.16 Interfaz de usuario modificada (ArchivosSecuenciales). Escribir cdigo a) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 cdigo se utiliza la funcin FileOpen con los parmetros: 1, un nmero de archivo libre, c:datossecuenciales.txt, nombre del archivo, OpenMode.OutPut, modo de apertura del archivo (salida). Con el mtodo PrintLine se imprime en una lnea 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 cdigo y escriba el siguiente cdigo: 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 27. 27 Lo nico que cambia con respecto a la opcin de Guardar archivo es el modo de apertura del archivo (OpenMode.Append), se cambia OutPut por Append (adicionar). Este modo de apertura permite guardar ms informacin al final del archivo especficado. c) Seleccione el objeto botonabrir, de doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 funcin FileOpen con los parmetros: 1, un nmero 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 lnea del archivo. Por otro lado se crea un ciclo (Do Until Loop) que recorrer el archivo hasta el final (EOF) lnea por lnea y utilizando el mtodo LineInput () se le asignar la informacin leida al objeto textolectura, por ltimo se cierra el archivo. Ejecutar el proyecto Al ejecutarse el proyecto se visualizar la figura 1.16. Al escribir un nombre y un apellido en las respectivas cajas de texto y pulsar el botn Guardar archivo, se guardar dicha informacin en el archivo c:datossecuenciales.txt. El formulario con la informacin quedara de la siguiente forma: Figura 1.17 Formulario con informacin de nombre y apellido. 28. 28 Si se desea adicionar ms informacin al archivo de texto, escriba nuevamente los nombres y apellidos correspondientes y pulse el botn Adicionar texto, se podra obtener la siguiente pantalla: Figura 1.18 Formulario con informacin para adicionar. Al pulsar el botn Leer Archivo se leer el contenido del archivo de texto, como se muestra en la siguiente figura. Figura 1.19 Formulario con la informacin del archivo. 29. 29 1.5 Archivos binarios Tambin es posible guardar o leer informacin desde un archivo con acceso binario. Con los archivos de acceso binario se puede almacenar informacin ya sea numrica, de cadena o de ambas. Este tipo de archivo no requiere campos de longitud fija. No obstante, es necesario conocer cmo 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 numrico. Para abrir un archivo para acceso binario, se recurre a OpenMode.Binary con la instruccin 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. 1.5.1 Ejemplo de archivos binarios Realizar un proyecto llamado ArchivosBinarios y hacer un programa que permita a un usuario guardar informacin en un archivo de texto plano, leer la informacin de este, utilizando archivos binarios. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin 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: 30. 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 cdigo a) Definir una estructura llamada Articulo despus de Public class formulario: Structure Articulo Dim producto As String Dim cantidad As String End Structure 31. 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 mxima de los datos. b) Seleccione el objeto botonguardar, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 informacin 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 nmero de archivo libre utilizando la funcin FreeFile (), como tambin se le asigna a la variable nombrearchivo la ruta y el nombre del archivo donde se guardar la informacin. Se abre el archivo en modo binario utilizando la funcin FileOpen que recibe como parmetros: un nmero 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 cdigo y escriba el siguiente cdigo: 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 lneas son exactamente iguales a la opcin 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 funcin FileGet para leer el contenido del archivo, ste recibe como parmetros: el numero del archivo (numeroarchivo) y el objeto textolectura, el cual contendr el contenido del archivo de texto. Por ltimo se cierra el archivo. 32. 32 Ejecutar el proyecto Al ejecutarse el proyecto en el entorno de desarrollo de Visual Basic.NET/2008, se visualizar la figura 1.21. Al escribir un producto y una cantidad en las respectivas cajas de texto y pulsar el botn Guardar Archivo, se guardar dicha informacin en el archivo c:datosaleatorios.txt. Al pulsar el botn Leer Archivo, el formulario con la informacin leda quedara de la siguiente forma: Figura 1.22 Formulario con informacin 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 informacin. Con Visual Basic .NET tambin 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 importarn datos de un archivo de Excel a un proyecto de Visual Basic .NET. 16.1 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 debern mostrar en un control DataGridView de Visual Basic .NET, as como se deber solicitar el rango de datos a importar. Al exportar se debern 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 especfico y ubique los siguientes controles en el formulario en la posicin deseada: 1 Label, 1 TextBox, 2 Button y 1 DataGridView. 33. 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: 34. 34 Figura 1.24 Interfaz de usuario modificada (ImportarExportarExcel). Escribir cdigo Antes de escribir cdigo, se deber crear un archivo en Excel llamado importardatos.xls y en la hoja uno (1) escribir informacin 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 cdigo y escriba el siguiente cdigo: importar_Excel("c:importardatos.xls", "hoja1", rango.Text, tabla) Se llama al procedimiento importar_Excel, el cual tiene como 35. 35 parmetros: 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 parmetros: 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 mtodo 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 conexin a Excel; conectordedatos de tipo OleDbConnection que representa una conexin nica a un origen de datos; en este caso, se le asigna espacio de memoria y se le enva como parmetro la cadena de conexin; selecciondedatos de tipo String a la cual se le asigna la sentencia de seleccin SQL (select) que trae los datos de la hoja1(nombrehoja) en el rango especficado (rangohoja). 36. 36 Al adaptador de datos adaptadordedatos se le asigna espacio de memoria, envindole como parmetro los datos seleccionados (selecciondedatos) y la cadena de conexin (conexiondedatos), tambin 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 conexin de los datos con close (). Adems 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 condicin 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 cdigo y escriba el siguiente cdigo: exportar_Excel(tabla, tabla.Rows.Count) Se llama al procedimiento exportar_Excel, el cual tiene como parmetros: el objeto DataGridView llamado tabla y la cantidad de filas que contiene dicho objeto utilizando la funcin 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 parmetro 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 parmetros: las variables tabla de tipo DataGridView y nrofilas de tipo long. 37. 37 El objeto tabla contendr los datos a exportar y nro_filas el nmero 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 aplicacin 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 mtodo Open de WorkBooks, como tambin 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 posicin del valor de la variable icolumna el nombre de la columna del objeto DataGridView utilizando el mtodo HeaderText, en el ciclo ms 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 posicin (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 1.25. Al escribir el rango A1:D10 y pulsar el botn 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 exportarn 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 ningn error. 38. 38 Figura 1.27 Hoja de Excel con datos exportados desde VB.NET. 1.7Exportar datos a Word Con Visual Basic .NET tambin 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. 1.7.1 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 opcin Agregar referencia y busque el nombre del componente Microsoft.Office.Interop.Word, se debera visualizar la siguiente pantalla: Figura 1.28 Agregar referencia .NET. 39. 39 Al estar seleccionado dicho componente, pulse el botn Aceptar para incorporarlo al proyecto. Crear la interfaz de usuario Utilizando el cuadro de herramientas haga clic en el control especfico y ubique los siguientes controles en el formulario en la posicin 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: 40. 40 Figura 1.30 Interfaz de usuario modificada (ExportarWord). Escribir cdigo a) Seleccione el objeto botonexportar, d doble clic para abrir el editor de cdigo y escriba el siguiente cdigo: 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 Aplicacin de Word (Word.application), Documento de tipo documento de Word (Word.Document), Parrafo de tipo Tabla de Word (Word.Table), como tambin 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 aade 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 posicin del valor de la variable columnas+1 el nombre de la columna del objeto DataGridView utilizando el mtodo HeaderText; en el ciclo ms 41. 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 cdigo: With tabla .Columns.Add("Cdigo", "Cdigo") .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 cdigo se llena el objeto tabla con datos. Se le adicionan cinco nombres, uno en cada columna con el mtodo 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 posicin i igual a cero (0) hasta el nmero de filas -1 del objeto tabla y por cada fila se adicionarn 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 sumndole el valor de i, en la cuarta un nmero 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. 42. 42 Al pulsar el botn Exportar a Word, se abrir un nuevo documento de Word y se visualizara 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 opcin Todos los bordes para que el documento presente el siguiente aspecto: Figura 1.33 Tabla de Word con datos y bordes. 43. 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. Disear 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. 44. 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 gestin de bases de datos). Cada base de datos se compone de una o ms tablas que guardan los datos. Cada tabla tiene una o ms columnas y filas. Las columnas guardan una parte de la informacin 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 caractersticas de las bases de datos se pueden mencionar: Independencia lgica y fsica de los datos. Redundancia mnima. Acceso concurrente por parte de mltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditora. Respaldo y recuperacin. Acceso a travs de lenguajes de programacin estndar. 2.1 Tipos de bases de datos Los tipos de bases datos ms comunes son las relacionales y en el mercado existen varios sistemas de administracin de bases de datos de ese tipo, algunos son: SQL Server, Access, Oracle, MySQL, PostgresSQL, etc. 2.1.1 Relacionales Son las que ms 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. 2.1.2 Orientada a objetos El esquema de una base de datos por objetos est representado por un conjunto de clases que definen las caractersticas y el comportamiento de los objetos que poblarn 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 inyeccin de inteligencia que les permite saber cmo 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 45. 45 estructura de los mismos. El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. 2.2.1 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 Descripcin CREATE Utilizado para crear nuevas bases de datos, tablas, campos e ndices. DROP Empleado para eliminar bases de datos, tablas e ndices. ALTER Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos. Comandos DML SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE Utilizado para modificar los valores de los campos y registros especficados. DELETE Utilizado para eliminar registros de una tabla de una base de datos. 2.2.2 Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que se desea seleccionar o manipular. Tabla 2.2 Clusulas SQL. Clusula Descripcin FROM Para especficar la tabla de la cual se van a seleccionar los registros. WHERE Para especficar las condiciones que deben reunir los registros a seleccionar. GROUP BY Utilizada para separar los registros seleccionados en grupos especficos. HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo. ORDER BY Para ordenar los registros seleccionados. 46. 46 2.2.3 Operadores lgicos Los operadores lgicos comprueban la veracidad de alguna condicin. stos devuelven el tipo de datos Boolean con el valor TRUE o FALSE. Tabla 2.3 Operadores lgicos SQL. Operador Uso AND Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. OR Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT Negacin lgica. Devuelve el valor contrario de la expresin. BETWEEN Utilizado para especficar un intervalo de valores. LIKE Utilizado en la comparacin de un patrn. IN Utilizado para especficar registros de una base de datos. ALL Devuelve True si el conjunto de comparaciones en verdad. 2.2.4 Operadores de Comparacin Los operadores de comparacin 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 comparacin SQL. Operador Uso < Menor que > Mayor que Distinto de = Mayor o igual que = Igual que 2.2.5 Funciones de agregado Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven un solo valor. Si exceptuamos la funcin COUNT, todas las funciones de agregado ignoran los valores NULL. Las funciones de agregado se suelen utilizar con la clusula GROUP BY de la instruccin SELECT. 47. 47 Tabla 2.5 Funciones de agregado SQL. Funcin Descripcin AVG Utilizada para calcular el promedio de los valores de un campo determinado. COUNT Utilizada para devolver el nmero de registros de la seleccin. SUM Utilizada para devolver la suma de todos los valores de un campo determinado. MAX Utilizada para devolver el valor ms alto de un campo especficado. MIN Utilizada para devolver el valor ms bajo de un campo especficado. 2.3 Sentencias Bsicas SQL Se describir muy brevemente algunas de las sentencias SQL para la manipulacin de los datos de una tabla. Para trabajar las sentencias a continuacin, 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. Campo Tipo de Dato Longitud identificacion varchar 15 nombres varchar 20 apellidos varchar 20 direccin varchar 25 telfono varchar 20 ciudad_nac varchar 20 fecha_nac date Y que contiene la siguiente informacin: Tabla 2.7 Informacin de la tabla usuarios. Identificacin Nombres Apellidos Direccin Telfono Ciudad_nac Fecha_nac 100 Carlos Romero Cra 7 # 20-10 4152584 Bogota 01/02/1980 101 Mara Castro Calle 25 # 25-10 3692581 Cali 15/03/1984 112 Jos Pelez Av. 35 # 32-45 1234567 Medelln 20/05/1960 114 Cristian Vanegas Cra 7 # 29-58 9874561 Manizales 31/08/1974 116 Rosa Cetina Calle 17 # 21-14 3571596 Buga 15/12/1985 118 Andrs Vanegas Tranvs 48 # 22-10 8527419 Bogot 10/04/1978 130 Anglica Morales Cra 68 # 21-11 6549518 Medelln 20/06/1981 150 Johana Duarte Cra 2 # 45-38 9637534 Bogot 12/06/1988 170 Mario Vargas Calle 1 # 99-18 6598743 Medelln 28/08/1980 2.3.1 CREATE DATABASE El comando CREATE DATABASE permite crear una base de datos. Su formato es: CREATE DATABASE 2.3.3 CREATE TABLE El comando CREATE TABLE permite crear una tabla. Con este comando se especfica 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 clusula DEFAULT indica la caracterstica 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). 2.3.4 DROP TABLE El comando DROP TABLE permite eliminar una tabla que previamente se haba creado. Su formato es: DROP TABLE nombre_tabla 2.3.5 INSERT La sentencia SQL de insercin de datos INSERT permite insertar informacin 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 debera realizar la siguiente sentencia: INSERT INTO usuarios (identificacin, nombres, apellidos, direccin, telfono, ciudad_nac, fecha_nac) VALUES ( 160, Carmen, Bolvar, Calle 100 # 115-55,2014201, Barranquilla, 18/11/1692) 2.3.6 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 numrico se debera realizar la siguiente sentencia: ALTER TABLE usuarios ADD credito numeric (18,0) 49. 49 2.3.7 SELECT La sentencia SQL que ms se utiliza es la instruccin de seleccin SELECT. Como su nombre lo indica, es una instruccin que permite seleccionar informacin de una tabla. Su formato es: SELECT campos_tabla FROM nombre_tabla A continuacin se realizan algunos ejemplos: a) Para visualizar toda la informacin que contiene la tabla usuarios se puede incluir con la instruccin SELECT el carcter * o cada uno de los campos de la tabla. SELECT * FROM usuarios O SELECT identificacin, nombres,.. FROM usuarios b) Para visualizar solamente la identificacin del usuario SELECT identificacion FROM usuarios c) Si se desea obtener los registros cuya identificacin sea menor o igual a 116, se debe utilizar la clusula WHERE que especfica las condiciones que deben reunir los registros que se van a seleccionar. SELECT * FROM usuarios WHERE identificacin, para visualizar la ventana de eleccin de la conexin de datos. Pulse la ventana y seleccione la base de datos bdlibrovbnet.mdf: Figura 2.25 Ventana Elegir la conexin de datos. Al seleccionar la base de datos que se va a trabajar y pulsando el botn Siguiente> se visualiza el siguiente mensaje: Figura 2.26 Ventana Microsoft Visual Studio. 69. 69 Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el proyecto y se visualizar la ventana de guardar cadena de conexin: Figura 2.27 Ventana Guardar cadena de conexin. Cambie el nombre de la conexin que all aparece por conexionsqlserver y pulse el botn Siguiente>, se visualizar la siguiente figura: Figura 2.28 Ventana de eleccin de objetos de la base de datos. Pulse el signo (+) al lado de Tablas para desplegar las tablas de la base de datos y seleccione la tabla clientes. Por otro lado, cambie el nombre del DataSet que all aparece por conjuntodedatos y pulse el botn Finalizar para visualizar la figura: 70. 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 conexin 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. 71. 71 2.7 Ejercicios de conexin a bases de datos 1. Disear un programa que permita realizar una conexin a una base de datos y mostrar datos de una tabla en un control ComboBox. 2. Crear un programa que permita realizar una conexin a una base de datos y mostrar datos de una tabla en un control ListView. 3. Realizar un programa que permita realizar una conexin a una base de datos y mostrar datos de una tabla en un control ListBox. 4. Elaborar un programa que permita realizar una conexin 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 conexin a una base de datos y mostrar los campos de una tabla en un Label. 6. Hacer un programa que permita realizar una conexin a una base de datos MySQL y mostrar datos de una tabla en una cuadrcula. 7. Disear un programa que permita realizar una conexin 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 conexin 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 conexin 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 conexin a una base de datos en MySQL y mostrar los datos de una tabla en un control ListView. 72. 72 3. DESPLAZAMIENTO POR LOS REGISTROS DE UNA TABLA Hasta el momento con los ejemplos se ha realizado una conexin a una base de datos ya sea utilizando cdigo o por medio de la herramienta Explorador de servidores y recurriendo al control DataGridView, visualizndose los registros de una tabla especfica. Ahora lo que se pretende es que el usuario, aparte de visualizar la informacin que contenga una tabla, tambin pueda desplazar o moverse por cada uno de los registros que contenga dicha tabla. Est operacin la podr realizar en un formulario utilizando campos de texto (TextBox) o una cuadrcula (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 3.1.1 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 especfico y ubique los siguientes controles en el formulario en la posicin deseada: 4 Button, 7 Label y 6 TextBox. Figura 3.1 Interfaz de usuario (MovRegCampoTexto). 73. 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 Direccin: Label6 Name ttelefono Text Telfono: Label7 Name tciudad Text ciudad Textobox1Textbox6 Name campo1.campo6 Text blanco Button1 Name botonprimero Text Primero Button2 Name botonsiguiente Text Siguiente Button3 Name botonanterior Text Anterior Button4 Name botonltimo 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). 74. 74 Establecer la conexin Desde la ficha Datos del cuadro de herramienta arrastre hacia el formulario el adaptador de datos SQLDataAdapter (Si no aparece el control, d clic derecho sobre la ficha Datos y ejecute la orden Elegir elementos, busque el control, seleccinelo en el cuadro de verificacin y pulse el botn Aceptar). Se visualizar la siguiente figura: Figura 3.3 Ventana Elegir la conexin de datos D clic en el botn Nueva Conexin. 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 conexin. Pulse el botn Aceptar, para visualizar nuevamente la ventana de Elegir la conexin de datos. All pulse Siguiente> para visualizar el siguiente mensaje: 75. 75 Figura 3.5 Ventana Microsoft Visual Studio. Pulse el botn S para copiar el archivo de datos en la carpeta en donde guard el proyecto. El Explorador de soluciones visualizara la base de datos como muestra la figura: Figura 3.6 Ventana Explorador de soluciones. Y tambin se visualizar la ventana de eleccin de tipo de comando: Figura 3.7 Ventana eleccin tipo de comando. Por omisin est seleccionada la opcin Usar Instrucciones SQL. Pulse Siguiente> para visualizar la ventana de generacin de instrucciones SQL. 76. 76 Figura 3.8 Ventana Generar las instrucciones SQL. Aqu se puede realizar la seleccin de los datos que debera cargar el adaptador de datos. Una forma es escribir en la ventana instrucciones SQL y la otra es pulsar el botn Generador de consultas. Para el ejemplo se pulsar el botn para visualizar la siguiente figura: Figura 3.9 Ventana Generador de consultas. Seleccione la tabla clientes, pulse el botn Agregar y luego el botn Cerrar, se visualizar la siguiente figura: 77. 77 Figura 3.10 Generador de consultas con la tabla clientes. En esta nueva ventana seleccione la opcin * (todas las columnas) o los campos que desea visualizar (Si desea visualizar la consulta seleccionada pulse el botn Ejecutar con