Curso de VisualBasic.NET.

Modificación del archivo.

Hasta ahora hemos aprendido a abrir un archivo de texto. Ahora vamos a crear un archivo de texto para poder abrirlo después con nuestra aplicación. Para crear un documento de texto con lo expuesto hasta ahora, utilizaremos el objeto Filestream y el objeto StreamWriter. El texto que introduzcamos en el control TextBox2 de la aplicación nos creará un nuevo archivo o sobrescribirá el que abramos anteriormente.

Para verlo con más detalle y no empezar a engorrar el código, utilizaremos un control MenuStrip para asignar las funciones de Abrir, Nuevo y Guardar. Inserta un control MenuStrip tal como se muestra en la imagen.

aplicación con menuStrip

Abre el código del MenuStrip1 de Abrir y copia el contenido del Button1 que te permitía abrir un archivo de texto y mostrarlo en el control TextBox2. Con eso, una vez copiado, no necesitarás el Button1 y podrás borrarlo de la aplicación.

Ahora en el segundo MenuStrip1 de Nuevo, estableceremos el código para que creemos un nuevo archivo de texto que llamaremos mirpas2, y guardaremos en la misma ubicación que el primero. Y como queremos que se guarde lo que escribamos en el TextBox2 de nuestra aplicación, deberemos de limpiar la pantalla para eso. Para ello utilizaremos una sentencia TextBox2.text="" , lo que hará que si existiese texto desaparezca del control. Y por último en el MenuStrip1 de Guardar estableceremos el código para guardar el texto que escribamos en el control TextBox2 de la aplicación

Código para nuevo y guardar

Podemos seguir mejorando el programa de manera que cuando activemos un control se desactive otro. Por ejemplo, cuando abrimos un archivo de texto, que no nos permita guardar el archivo, y que se quede desactivado el control cuando se cargue el texto en el TextBox2. O cuando pulsemos sobre Nuevo, que desactive el menú Abrir, para que no se produzcan sobre escrituras en archivos. Eso lo dejo a tu elección.

Objeto SaveFileDialog.

El objeto SaveFiledialog es un control que permite al usuario guardar un archivo mediante un cuadro de dialogo parecido al del objeto OpenFileDialog, por tanto muchas de las opciones disponibles para este objeto son válidas para el SaveFileDialog. Esta clase permite abrir y sobrescribir un archivo existente o crear un archivo nuevo. La mayor parte de la funcionalidad de esta clase se encuentra en la clase FileDialog. En nuestra aplicación agrego un objeto SaveFileDialog1 y modifico el código de Guardar tal cual se muestra en la imagen.

Modificación con savefiledialog

Como puedes ver la estructura de SaveFileDialog es muy similar al OpenFileDialog. Como puedes ver en la segunda línea, dentro del condicional he introducido todo lo necesario para guardar el archivo de texto. También he cambiado la dirección del archivo a guardar en el objeto FileStream debido a que ahora es el control SFD el que selecciona el directorio de guardado del archivo.

continuándo con VideoClub.

En el anterior proyecto de VideoClub empezamos a manipular las listas de los títulos al guardalos en un archivo plano que podíamos cargar dentro del control ListBox1. Esa forma de programar es apta cuando empiezas a desarrollar tus propios proyectos, pero es innecesaria cuando tienes a tu alcance otras tecnologías mejores y con menos complicación. En esta parte de la práctica aprenderás a conectarte a una base de datos Access para que se carguen los datos de la misma en tu aplicación.

pantalla principal

Como vés la aplicación ha cambiado de forma que me he desecho de:

● Control ListBox1

Y ahora los controles tienen la siguiente forma:

● Button1: Guardar.
● Button2: Eliminar.
● Button3: Anterior.
● Button4: Siguiente.
● Button5: Nuevo.
● Button6: Carátula.

Y los TextBox quedan de la forma:

● TextBox1: Id.
● TextBox2: Título.
● TextBox3: Género.
● TextBox4: Año.
● TextBox5: Descripción.

Como lo que quiero ahora es mostrar los datos en los controles de texto, necesitaré una base de datos Access para guardar los datos. La aplicacion será el reproductor de dicho sistema gestor.También en el lugar donde iba el ListBox1, pondré un control PictureBox1, que servirá para cargar la carátula de la película.

Cadena de conexión.
La cadena de conexion es un objeto que hereda de la clase DbConnection y su propiedad ConnectionString. Con esto, NET.Framework obliga a utilizar esta clase para realizar una conexión a un gestor de bases de datos, existiéndo 4 tipos de conexión:

● System.Data.SqlClient: Realiza la conexión para bbdd de Microsoft SQL Server.
● System.Data.OleDb: Acceso a orígenes de datos expuestos mediante OLE DB.
● System.Data.Odbc: Acceso a orígenes de datos expuestos mediante OLE DB.
● System.Data.OracleClient: Proporciona acceso a datos a partir de Oracle 8.1.7.

Como vaoy a utilizar una BBDD Access2010, necesitaré configurar una conexión OleDb. Por lo tanto para tu proyecto necesitas importar la clase (librería) específica.

importa la clase para OLEDB

La propiedad ConnectionString de un objeto OleDbConnection permite obtener o establecer una cadena de conexión para un origen de datos OLE DB, como Microsoft Access. Por lo que creo una variable de conexión tal cual muestro en imagen.

variables de conexión

Para una cadena de conexión OleDbConnection, debe proporcionar un nombre de proveedor. La siguiente cadena de conexión conecta a una base de datos Microsoft Access mediante el proveedor Jet, seleccionándo la cadena de conexión, la instrucción SQL que queremos ejecutar y declarándo las variables necesarias para tal fin.

Para cada sentencia en la manipulación de la BBDD, necesitaré un proceso independiente uno del otro, por esa razón declaro las variables como privadas, ya que si las declarara como públicas solo podría ejecutar una vez la instrucción y me devolvería el IDE un error.

Acciones.

Ahora que tenemos la BBDD y algunos registros (has podido introducir registros manualmente en la BBDD Access), es hora de poder acceder a las funciones principales de la aplicación. Podrás tener tantas funciones como desees en la aplicación, pero yo voy a utilizar solo 6 como son Guardar(), Eliminar(), Anterior(), Siguiente(), Nuevo() y CargarFoto().

Para ello voy a crear 6 sub procesos indipendientes (privados) que enlazaré desde el formulario mediante la instrucción AddHandler y AddressOf. Esta instrucción asocia un evento en tiempo de ejecución a un controlador de eventos, por lo cual no se cerrará la aplicación cuando se ejecute una de las funciones ejecutadas en la BBDD y la aplicación.

Creándo los objetos para la manipulación de eventos.

Lo siguiente es crear la estructura que inicialice la conexión a la BBDD y que permita manipular los registros de la misma. Para ello, y dentro de una estructura Try - End Try, inicializo la conexión a la BBDD y después, mediante la instruccion adaptador.fill(midataset), agrego los datos del objeto DataSet para que coincidan con los del origen de datos. Para finalizar, con el enlazador mantengo abierta la comunicación con la BBDD y situo el puntero del ratón en la primera fila de la tabla de la BBDD.

Las siguientes líneas aplican el resultado de la lectura de la primera fila de la BBDD a los controles TextBox pertinentes para mostrar el resultado.

Para terminar las siguientes líneas de la aplicación están compuestas de los subprocesos para las funciones específicas de la aplicación.

Subprocesos de la aplicación

Cabe destacar que utilizamos la variable enlazador como constructor del objeto u origen del dato y que según la opción escogida, tendremos una acción u otra, ya que los métodos del objeto varían de acuerdo a la acción escogida (como por ejemplo, siguiente, anterior, guardar, etc., etc).

Bueno, creo que por ahora ya esta bien. Doy por terminado éste proyecto VideoClub para en siguientes vídeos empezar con otros proyectos más complicados. En el menú inferior te dejo el proyecto de Visual Studio para que puedas editarlo tu mismo por lo que tienes que recordar varias cosas:

● La ruta de los archivos puede ser diferente a tu ruta.
● Deberás de cambiar la ruta absoluta de las carátulas en tu programa BBDD.
● Además es imprescindible que tengas el Access2007 o 2010 para que funcione la aplicación.

La contraseña de descompresion es: mirpas.com

Ahora visita el enlace de vídeos, para más información.