none
URGENTE: Conectar base de datos SQL SERVER a Visual Studio RRS feed

  • Debate general

  • Hola amigos, tengo un problema.

    He creado una base de datos SQl server, usando la version sql server express 20914. He usado la utilidad SqL server management studio, y no he tenido problemas para crear tablas relaciones, etc. Hasta aqui todo OK

    Ahora intento conectar esta base de datos al Visual Studio 2013 comunity... 

    - Creo un proyecto

    - Pico en Add existent item

    - Navego hasta donde está mi base de datos con extensión mdf

    C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA

    - en el desplegable donde aparecen las extensiones de los ficheros para añadir NO aparece mdf

    - le doy a "all files"

    - Selecciono la base de datos mdf

    - me sale el error ACCESO DENEGADO

    Por favor, necesito que me digan como puedo añadir una base de datos EXISTENTE al proyecto visual studio

    Gracias por adelantado

    domingo, 3 de mayo de 2015 9:56

Todas las respuestas

  • Recuerda que SQL Server Express tiene dos maneras de manejar las bases de datos: Como instancia de usuario y como instancia permanentemente attachada al servicio sql. Por tu descripción, parece ser que creaste la base de datos por el segundo procedimiento (dejándola attachada al servicio) pero luego estás intentando añadirla a visual studio usando la primera modalidad (instancia de usuario).

    Las dos modalidades no se pueden usar a la vez. Tienes que optar por una o por la otra. Si decides usar la instancia de usuario, entonces tienes que entrar en SSMS y seleccionar la opción "detach" para desconectar el .mdf del servicio SQL. De lo contrario, Visual Studio no te deja añadirlo porque está en uso (como ya has descubierto).

    Alternativamente, puedes dejar la base de datos attachada al servidor y conectar desde visual studio con la opción "añadir conexión" (en la pestaña de Datos) en lugar de "añadir elemento existente". Esto lo conectará al servicio SQL en lugar de traerse el fichero .mdf a la carpeta del proyecto.

    lunes, 4 de mayo de 2015 5:31
  • Hola Alberto. Gracias por la respuesta...

    Creo que entiendo lo que me dices, a ver si me puedes orientar en lo siguiente:

    Ncesito crear una base de datos SQL server y conectarla a VStudio para programar. ¿qué es mejor?

    1)Crear una base de datos attachada al servidor y conectar con "añadir conexion" o

    2)Crear la base de datos desde dentro de visual studio en (LocalDB\v11.0), es decir, abriendo un proyecto, haciendo add new item -> service-based Database. De esta forma entiendo que la instancia no está attachada al servidor.

    Muchas Gracias

    • Editado JotaQ lunes, 4 de mayo de 2015 21:22
    lunes, 4 de mayo de 2015 11:02
  • Alberto, cuando puedas por favor lee mi anterior post...

    Gracias

    lunes, 4 de mayo de 2015 21:24
  • [...] ¿qué es mejor?

    1) Crear una base de datos attachada al servidor [...]

    2) Crear [...] (LocalDB\v11.0), [...] De esta forma entiendo que la instancia no está attachada al servidor.


    En ambos casos esa base de datos queda attachada a un servidor. La diferencia es que en el caso de usar localdb, se inicia una instancia del servidor por cada programa que decide usar la base de datos. Esa instancia se para automáticamente cuando el programa lleva unos minutos sin usarla. Se considera más "liviano" que usar la instancia "fija", pero ésta última puede ser ventajosa si muchos programas a la vez tienen que usar bases de datos (ya que serían atendidos todos ellos por una única instancia en lugar de iniciar varias instancias en memoria) o si se quiere compartir la instancia para que accedan otros usuarios a través de la red. Adicionalmente, localdb tiene algunas restricciones como por ejemplo que no soporta Filestream y que no puede ser suscriptor en una replicación de combinación.
    martes, 5 de mayo de 2015 5:28
  • Alberto muchísimas gracias por la aclaración. Mi objetivo es hacer un único programa que va a funcionar en un único ordenador. 

    Entonces ves mejor usar LocalDB ¿verdad? ..

    El problema de usar LocalDB es que cuando ejecuto Management Studio con el proyecto Visual Studio cerrado, no ve la base de datos creada en LocalDB... pero si abro el proyecto en visual y conecto la base de datos, y estando abierto voy a Management Studio, conecto con (localDB/V11.0) entonces SI que ve la base de datos y puedo modificar el diagrama.. ¿esto es normal?

    Muchas gracias de nuevo y un saludo

    martes, 5 de mayo de 2015 7:47