Base de datos con Visual Basic .NET o C# sin escribir código (II)

Tamaño de letra:

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:

Mostrar orígenes de datos

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:

Arrastrar controles al formulario

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:

Form1: agregar nuevo registro

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...

Última actualización: Miércoles, 08 Mayo 2013
Comentarios  
0 # Miguel Ángel 26-04-2020 00:32
Muy bueno este artículo. Muchas gracias!
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!!!
0 # Editor 26-04-2020 00:37
Uff! Hace mucho que escribí el artículo, ya no sé si con la versión de 2019 se podrá hacer igual. Es que en 7 años ha cambiado todo esto muchísimo, tendría que probarlo de nuevo. A ver si puedo hacerlo estos días...
0 # andres 10-12-2016 01:15
Mil gracias!

Ha sido de gran ayuda :D
0 # GMariano 13-06-2013 22:50
..y 3 (tu web no deja escribir comentarios largos...)
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.
0 # karmany 14-06-2013 14:34
Efectivamente antes era mucho más sencillo. El tema es que actualmente .NET brinda muchas opciones para la gestión de bases de datos. A ver si puedo publicar un artículo en breve sobre todas estas alternativas.

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.
0 # karmany 15-06-2013 17:43
GMariano, he estado probando con C# y a mí no me ocurre eso. ¿Por qué no intentas eliminar las otras 2 bases de datos y quedarte solo con 1 a ver si el problema persiste?
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
+1 # GMariano 17-06-2013 20:04
Hola karmany,
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
0 # karmany 18-06-2013 00:37
Ciertamente es muy extraño lo que comentas. Yo ahora mismo estoy trabajando solo con la BD que está en Debug, las demás las he eliminado.
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.
0 # GMariano 18-06-2013 20:15
Hola karmany, ya se lo que pasa.. es simple pero no sencillo de encontrar:La base de datos que ves en el expl.de soluciones es la que está en debug. Click derecho en ella, abres propiedades de la BD, y en Copiar en el directorio de resultados, por defecto, viene: "Siempre", si cambias a "si es posterior"... todo solucionado. En caso contrario, cada modificación en diseño, carga la BD del proyecto, que no se actualiza JAMÁS. Solo se actualiza LA QUE ESTÁ EN DEBUG. Espero que ayude a alguien. Saludos y muchas gracias por tu atención.
0 # karmany 18-06-2013 20:39
MUCHÍSIMAS GRACIAS por explicarlo. :D Seguro que será útil a muchos. Yo desconocía esa opción.
0 # GMariano 13-06-2013 22:43
2 - Añado, con la ayuda del Navigator, un nuevo elemento a la tabla y lo grabo.
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.
0 # GMariano 12-06-2013 10:11
Muy sencillo y muy instructivo.
¡A ver cuando vienen los siguientes tutoriales anunciados mas arriba!

Muchas gracias.
Saludos.
0 # karmany 12-06-2013 16:15
Personalmente me parece un tema muy interesante y al que actualmente le estoy dedicando algo de tiempo. Ya tengo algunos artículos preparados.
Puede llegar a ser un tema complejo pero mi intención es poder orientar al que quiere comenzar.
Gracias por tu comentario.
0 # GMariano 12-06-2013 21:34
Hola de nuevo.
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.
+1 # karmany 13-06-2013 00:05
Es algo extraño porque yo también estoy usando VB 2010 y no me da ese problema. Este ejemplo lo hice con una base de datos de Access local, prueba esta base de datos.

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.
0 # GMariano 13-06-2013 22:41
Pues no, no se trata de la base de datos. Con tu base de Access pasa lo mismo. Yo tengo la base de datos original mdf (creada con VB 2010) en una carpeta "Mis archivos VB". Creo mi proyecto "PruebaDB" en VB y llegado el momento (siguiendo tu receta) señalo a VB donde esta mi base de datos, conecto y es OK y luego le digo que "sí" a copiarla en el proyecto. Créo una conexión automática a un datagridview con la tabla que me interesa. F5 y todo maravilloso.
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.

No tiene privilegios para responder a los comentarios.


 
Visitas: 8567599