Introducción:
En este artículo te voy a explicar "el truco" para usar una base de datos
de SQL Server 2005 Express para crear un DataSet tipado (y usar los
asistentes de acceso a datos) con Visual Basic y Visual C# 2005 Express.
Porque, por si no lo sabes, con las versiones Express de Visual Basic o
Visual C# solo puedes crear DataSet tipados con bases de datos en ficheros,
ya sean de Access o de SQL Server.
Al menos, claro está que no tengas el Visual Studio 2005 "normal", es
decir, el de pago, ya que con esa versión no tendrás problemas. Pero si
estás usando las versiones Express (que son gratuitas), pues debes hacer lo
que aquí te explico si en lugar de usar una base de datos de SQL Server en
un fichero, la quieres usar definiéndola en el propio "servidor", en este
caso en el creado por el SQL Server 2005 Express.
Porque con la versión avanzada de SQL Server 2005 Express puedes usar el
Management Studio Express para crear y manejar las bases de datos en la
instancia que se crea al instalarlo, normalmente, con el nombre SQLEXPRESS.
El quid de la cuestión...
Te voy a explicar paso a paso que es lo que tienes que hacer. Recuerda
que todo esto es para usar una base de datos de SQL Server 2005 desde las
versiones Express de Visual Basic 2005 o Visual C#, de forma que te permita
crear un DataSet tipado usando el asistente de Agregar nuevo origen de
datos, de forma que puedas crear un formulario para mostrar/introducir
los datos de forma fácil.
Ya sabes, (y si no lo sabes, te lo digo ahora), que a mi no me gusta usar
el acceso a datos con el DataSet tipado que crea el asistente, y por tanto,
tampoco me gusta usar el BindingNavigator usado para añadir y demás cosas de
los registros de la tabla... realmente no me gusta nada que tenga "olor" a
"data binding", pero... creo que para muchos es más fácil de usar que
escribir todo el código a mano.
Pero de lo que se trata no es de explicarte cómo crear ese formulario con
acceso "automatizado" a una base de datos, sino cómo usar una base de SQL
Server que no solo sea en un fichero... que dicho sea de paso, si no se
tiene cuidado al usarla desde el IDE te puede parecer que no funciona...
pero esa es otra historia.
Los antecedentes
Cuando quieres usar el asistente para agregar un nuevo origen de datos y
poder crear un DataSet, por ejemplo, a partir de una tabla de una base de
datos. En las versiones Express de Visual Basic o Visual C# solo te permite
crear una base de datos que esté en un fichero. Por ejemplo, en la figura 1
está la parte del asistente que te permite indicar (o crear) el fichero de
la base de datos que quieres usar:
Figura 1. Indicar el fichero de la base de datos a usar
Como puedes ver, solo permite agregar un fichero, ya sea uno existente o
uno nuevo.
En las versiones "normales" de Visual Studio 2005, pulsando en el botón
"Cambiar" de esa pantalla, puedes elegir si será un fichero una base de
datos que esté alojada en un servidor de SQL Server, pero tal como puedes
ver en la figura 2, no hay opciones para otra cosa que no sea una base que
esté en un fichero, ya sea de SQL Server o de Access.
Figura 2. En las versiones Express el origen de datos debe ser un fichero
Pues bien, ahora te explico cómo "engañar" al Visual 2005 Express para
que nos permita crear un DataSet tipado usando el asistente de Agregar nuevo
origen de datos, pero que permita que sea una base de datos "normal", es
decir, que no esté en un fichero. Por supuesto esa base de datos ya debe
estar creada y alojada en el servidor de SQL Server 2005 Express que
tendremos en nuestro equipo.
Nota:
En los pasos que te indico a continuación se supone que existe una base de
datos de SQL Server 2005 Express llamada conImagenes2. Para crear esa base de
datos, puedes usar el Management Studio Express que se incluye con la
versión avanzada de SQL Server 2005 Express, que también es gratuito.
Los pasos
Ahora sí, veamos los pasos que debes dar.
- Lo primero que debes hacer es crear un nuevo proyecto del tipo
aplicación de Windows. En estos pasos he usado el Visual Basic 2005
Express, pero te servirá igualmente el Visual C# 2005 Express, si es que
ese es tu lenguaje preferido.
- Muestra la ventana Orígenes de datos, que si no la tienes visible,
puedes mostrarla desde el menú Datos y pulsando en la opción Mostrar
orígenes de datos.
- Habrá un link como el mostrado en la figura 3, con el texto Agregar
nuevo origen de datos. Pulsa en ese link.
Figura 3. Agregar nuevo origen de datos
- Eso mostrará el asistente para la configuración de orígenes de datos
(figura 4).
- Pulsa en la primera opción: Base de datos y pulsa en Siguiente.
Figura 4. Asistente para la configuración de orígenes de datos
- En el siguiente paso, te mostrará una pantalla como la de la figura
5 en la que te pregunta que conexión quieres usar, pero como no hay
ninguna, tendrás que pulsar en Nueva conexión.
Figura 5. Elegir una conexión
- Cuando pulsas en ese botón de "Nueva conexión", te pide la base de
datos que quieres usar, pero en un fichero, tal como ya viste en la
figura 1.
- En la casilla del nombre, escribe lo que quieras, en mi caso, (tal
como ves en la figura 1), he puesto nueva, pero puedes poner lo que
quieras, ya que eso solo nos sirve para "confundir al enemigo", je, je.
- Pulsa en Aceptar y volverá a la pantalla anterior (como la de la
figura 5), pero en este caso, en el nombre de la conexión pondrá nueva.mdf (si en lugar de nueva has puesto otra cosa, pues te pondrá lo
que hayas escrito en el paso 8 además de la extensión .mdf.
- Te saldrá un aviso de que la conexión actual utiliza un archivo de
datos local, bla, bla, pulsa en Si.
- A continuación te mostrará una ventana como la de la figura 6, en la
que te pregunta si quieres guardar la cadena de conexión, y te dice el
nombre que se usará. Pulsa en Siguiente, ya que esta es la parte
más importante de todo este "tinglado".
Figura 6. Guardar la cadena de conexión
- Después te mostrará algo como lo de la figura 7, simplemente pulsa
en Finalizar.
Figura 7. Ultimo paso del asistente
- Una vez finalizado el asistente para configurar el origen de datos, en
el Explorador de soluciones estarán los ficheros mostrados en la
figura 8. Recuerda que esa captura es de Visual Basic, en C# seguramente
tendrás otras cosas, tal como puedes ver en la figura 9.
Figura 8. Los ficheros creados por Visual Basic 2005 Express |
Figura 9. Los ficheros creados por Visual C# 2005 Express |
- Ahora debemos eliminar lo que no nos hace falta, en particular los
siguientes ficheros:
La base de datos (nueva.mdf) y el DataSet tipado (nuevaDataSet.xsd).
- NO BORRES el fichero app.config, y si no está en los
ficheros, como ocurre en la figura 9, no te preocupes.
- Haz doble clic en las propiedades del proyecto (My Project en
Visual Basic, Properties en C#) para que se muestren las
propiedades del proyecto.
- En la ficha Configuración estará la cadena de conexión que se
ha creado para la base de datos que hemos añadido, pero lo que nos
interesa es que tenga la cadena correcta a la base que queremos
utilizar.
- Modifica ese valor para que tenga la cadena de conexión adecuada a
la base de datos que quieres usar, en mi ejemplo, la base de datos se
llama conImagenes2 y tal como puedes ver en la figura 10, la
cadena de conexión es:
Data Source=.\SQLEXPRESS; Initial Catalog=conImagenes2; Integrated
Security=True.
Figura 10. Los valores de Configuración con la cadena de conexión
- Cierra esa ventana y guarda los cambios si te pregunta.
- Si no tenías el fichero app.config, se habrá creado uno con
esa cadena de conexión, y si ya lo tenías, verás que la nueva cadena de
conexión estará almacenada en ese fichero.
Crear el DataSet tipado usando la nueva cadena de conexión
- Lo siguiente que vamos a hacer es usar esa cadena de conexión para
crear el DataSet tipado y así poder usarlo para crear un
formulario de datos.
- En la ventana Orígenes de datos (figura 3), pulsa en
Agregar nuevo origen de datos.
- Te mostrará el asistente (figura 4), ya sabes, pulsa en Base de
datos.
- En el siguiente paso (figura 11), usamos la cadena de conexión que
hemos modificado, (ya estará seleccionada, por tanto simplemente pulsa
en Siguiente).
Figura 11. Usamos la cadena de conexión que hemos modificado
- Y por medio de esa cadena de conexión, podremos acceder a la base de
datos de SQL Server que queríamos, tal como puedes ver en la figura 12.
Figura 12. Ya tenemos los datos de la base de datos indicada en la cadena de
conexión
- A partir de aquí, pues no es más que seguir los pasos habituales.
- En la ventana de Orígenes de datos tendrás la tabla y podrás
arrastrarla hasta el formulario para crear los controles, ya sean en
modo DataGridView o en modo individual, según elijas.
- Pero ese tema sería algo para otro artículo, por ejemplo, como el
que te pondré en unos días para usar imágenes de una base de datos de
SQL Server 2005 Express, aunque en esa ocasión será sin asistentes.
Espero que te sea de utilidad.
Nos vemos.
Guillermo
|