Base de datos con Visual Basic .NET o C# sin escribir código (II)
Dibujando la interfaz gráfica
En el anterior artículo creamos una sencilla aplicación en C# o Visual Basic .NET que se conecta a una base de datos con extensión .accdb (Microsoft Access 2007). Sin embargo, la aplicación gráficamente está vacía, no hay etiquetas, ni cuadros de texto, ni botones, ni nada de nada. En el tutorial de hoy vamos a dibujar la interfaz de una forma muy sencilla y gráfica.
Tras haber finalizado el asistente, puedes echar un vistazo al "explorador de soluciones" 1 y observar todo lo que ha sido creado; verás la base de datos embebida en el proyecto y un nuevo elemento llamado bddDataSet: cuando seleccionaste los objetos mapeados de la base de datos (ver la última imagen del anterior tutorial) el asistente te solicitó un nombre para el DataSet. En nuestro caso el nombre fue: bddDataSet.
Si ahora vas (lo explico en Visual C#) al menú Proyecto ? Propiedades de EjemploSencillo ? Configuración, podrás ver la cadena de conexión. En este caso es:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\bdd.accdb
Esta cadena puedes observar que está guardada en el archivo app.config en el directorio de tu proyecto EjemploSencillo.
Creando la interfaz
Ve ahora al menú Datos ? Mostrar orígenes de datos 2. Verás esto:
Te aparecerá una nueva ventana Orígenes de datos 3. Si prestas un poco más de atención podrás ver que nos muestra el tipo de control asociado a ese campo. Por ejemplo, nombre y apellido están ambos asociados a un textbox (cuadro de texto). Observa también que a su derecha he puesto el formulario Form1, que está vacío. Ahora símplemente hago lo siguiente:
Desde la ventana Orígenes de datos, arrastro el campo nombre y lo suelto en el formulario Form1. Hago lo mismo con el campo apellido, como se ve en esta imagen:
Como puedes comprobar, Visual Studio nos genera todo lo necesario y no nos tenemos que preocupar de nada, incluso para cada textbox añade una etiqueta identificativa del campo. Observa que en la parte superior ha creado una barra de navegación (usuarioBindingNavigator), para moverte por los registros, ir al primero, al último, añadir, guardar o eliminar, entre otros. Si en tu proyecto tienes más campos, puedes añadirlos igualmente y diseñar la interfaz a tu gusto.
Sin escribir nada de código
Como has podido comprobar, has generado de forma gráfica una aplicación para el manejo de una base de datos. Si ahora la compilas o la ejecutas desde el mismo Visual Studio, puedes ver que el programa funciona correctamente:
En la imagen sobre este párrafo se está mostrando el primer registro (observa la base de datos en el anterior tutorial). Para moverte por los registros puedes pulsar las flechas (ir al primer registro, al anterior, al siguiente o al último), puedes ver el número de registros almacenados y en el que estás ahora (1 de 3), añadir uno nuevo (pulsando el + como se ve en la imagen), eliminar el registro actual (aspa roja) y guardar (imagen del disquette azul).
Como ves, todo este proceso ha resultado muy sencillo y ¡sin escribir nada de código! En siguientes tutoriales nos iremos adentrando un poco más en este tema, que considero muy importante, hasta poder crear una aplicación más profesional y conocer otras alternativas que nos brinda Visual Studio...
Pero tengo una duda, como realizo una consulta SQL una vez ya te creado la base de datos y el formulario con los campos.
Debo de crear otra conexión a la base de datos?
Muchas gracias!
Felicidades por este gran artículo!!!
Ha sido de gran ayuda
Perdona la quemada que te he dado, pero no entiendo nada de nada... Yo he programado aplicaciones con bases de datos en VB 5 y VB 6 sin ningún problema. Lo dejé durante algunos años por cosas de la vida y ahora que me reciclo a NET me encuentro como en un charco lleno de lodo: no sé ni donde piso. Mucho mas sencillo antes. Sin duda.
Ya me dirás algo si eres capaz de entenderlo....
Gracias anticipadas.
Luego echaré un vistazo a lo que me comentas.
Dije que programo en VB NET pero no es así yo lo hago con C# pero no importa ya que son similares.
También miraría a ver si tienes la última versión de VB 2010 NET y otros componentes. Podría ser un bug del programa.
Si tienes Visual Studio:
www.microsoft.com/es-es/download/details.aspx?id=23691
He trasteado mucho y he dado muchas vueltas. Soft OK Ultimate 10.04219.1+SP1/ /Ms.Net Framework 4.0+SP1//SQLSer ver 2008 SP3. La BD primigenia se puede eliminar sin problemas. La otra que está en el programa (pero no en Debug) NO y la de debug, tampoco. No sé que hacer. Saludos
Si de este modo no te funciona yo te recomendaría que lo hicieses de forma manual (si vas a usar un DataSet: creas la cadena de conexión y rellenas el DataSet con una primera consulta) o si vas a trabajar en servidor que uses Entity Framework.
Compruebo que se mantiene grabado finalizando el "Debug" / cerrando VB o incluso apagando el PC.
Pero algo no esta claro: Solo se ha actualizado (cambio de hora) el archivo que se encuentra en bin / Debug los otros dos están como al principio.
Reinicio VB, compruebo (F5)que la última modificación está ahí y vuelvo a la ventana de diseño. Con el ratón, amplío el ancho del formulario... y¡ZAS! la base de datos del bin / Debug se actualiza con los DATOS NO MODIFICADOS de alguna de las otras dos BD y lo muestra también mostrando la hora de actualización del archivo. Simplemente las modificaciones realizadas se han evaporado.Haz la prueba; a mí, sin mas experiencia que dos días con tu tutorial, me cuesta muy poco reiniciar el proyecto desde cero y comprobar que esto pasa SIEMPRE.
¡A ver cuando vienen los siguientes tutoriales anunciados mas arriba!
Muchas gracias.
Saludos.
Puede llegar a ser un tema complejo pero mi intención es poder orientar al que quiere comenzar.
Gracias por tu comentario.
Bueno he pasado de la teoría a la practica y en efecto todo funciona perfectamente: añade, borra y guarda las modificaciones (uso VB 2010 y una base de datos .mdf). Si cierras la aplicación y vuelves a abrirla se mantienen las modificaciones realizadas e incluso apagando el VB o el ordenador, al volver a cargar el programa todo continúa en su sitio.... hasta que se modifica algo en la ventana de diseño: tan simple como cambiar el ancho del formulario hace que los datos modificados en la base de datos se evaporen y todo regrese a la situación de la base de datos original...
¿Por qué ocurre y qué solución le ves a esto? La sensación de inseguridad es total.
Gracias de antemano.
De todos modos, yo en vez de usar el asistente para la programación de bases de datos local con Dataset, prefiero programarlo desde cero en código y ejecutar las consultas al DataSet con LINQ to Dataset.
Si examino "Mis archivos VB2010" veo que tengo dentro 3 bases de datos idénticas: una es la original que tenía antes de empezar, la 2ª está en el archivo creado para el proyecto "PruebaDB" y la 3ª dentro de la carpeta "bin" /"Debug". Todas ellas en ese momento con la misma fecha y hora.