none
Ayuda con un Setup en Visual Studio. RRS feed

  • Pregunta

  • Estoy creando un SETUP para probarlo en otra maquina y como pre-requisitos coloque que se instalara SQL Server 2012 que es el mismo que estoy usando y su respectivo .net. Mi cadena de conexion esta en el App.config  reflejada como

    <add name="Con"
                connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Prueba.mdf;Integrated Security=True;Connect Timeout=30"
                providerName="System.Data.SqlClient" />

    Mi DB la tengo colocada dentro de mi proyecto de VS. Cuando corro el programa en mi pc funciona a la perfeccion ya que tengo el DataDirectory con la ruta absoluta de la DB. Pero cuando lo instalo en la otra pc (Cambio el data directory por la ruta absoluta a donde voy a instalar e incluir mi archivo .mdf) no me cargan los datos que tengo registrado (por ejemplo en un Datagrid ) y si hago una accion se me cuelga el programa y me sale este error.

    segun lo que dicen son las instancias. Pero Como las activo ?, tengo los servicios activos de Sql server y sql server agent pero no creo que sea lo mismo.

    si hay alguna forma de activar las instancias se pueden hacer a travez de codigo mediante el proyecto de C#?

    no se si le tenga que agregar el Trusted_Connection...

    domingo, 12 de febrero de 2017 21:42

Respuestas

  • Alex Alfonso,

    Si, sí buscas una versión ligera de SQL Server que se ejecute en modo usuario entonces una buena opción es SQL Server LocalDB. 

    ¿Instalaste en el equipo cliente SQL Server LocalDB? El medio de instalación lo encuentras en el siguiente enlace: Microsoft® SQL Server® 2012 Express, asegúrate de descargar e instalar únicamente el ejecutable 'ESN\x64\SqlLocaLDB.MSI'.

    Para SQL Server 2012 la instancia creada por defecto es v11.0, tras la instalación puedes corroborarlo escribiendo en la ventana de comandos (CMD) la siguiente instrucción:

    > SqlLocalDB info

    Finalmente, la cadena de conexión debería ser:

    "Server=(LocalDB)\v11.0; Integrated Security=true; AttachDbFileName=D:\Data\MyDB.mdf"



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Alex Alfonso lunes, 13 de febrero de 2017 1:43
    lunes, 13 de febrero de 2017 0:59
  • Alex Alfonso,

    Te había comentado que la instancia por defecto de SQL Server 2012 LocalDB es v11.0, y la instancia por defecto de SQL Server 2014 LocalDB es MSSQLLocalDB, si te das cuenta -esta última- es la misma instancia que escribes en la cadena de conexión con la que inicias el post y el mensaje de la excepción lo confirma: la base de datos la has creado en la versión 2014 de SQL Server LocalDB y no es posible hacer un "downgrade".

    Por tanto, debes descargar e instalar Microsoft® SQL Server® 2014 Express bajo los mismos procedimientos explicados en el aporte anterior, claro, la cadena de conexión también cambia:

    "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true; AttachDbFileName=D:\Data\MyDB.mdf"



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Alex Alfonso lunes, 13 de febrero de 2017 22:09
    lunes, 13 de febrero de 2017 6:32

Todas las respuestas

  • Alex Alfonso,

    La cadena de conexión que muestras hace referencia a una instancia de SQL Server Express LocalDB, LocalDB no se ejecuta como un servicio, se ejecuta en background en user-mode.

    Pregunto, ¿en realidad buscas conectarte a una instancia de SQL Server Express LocalDB?. Si tienes una instancia de SQL Server 2012 (que se ejecuta como un servicio) entonces la cadena de conexión debería tener la siguiente forma:

    connectionString="Data Source=(local); Initial Catalog=NombreDB; Integrated Security=SSPI"
    
    


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    domingo, 12 de febrero de 2017 22:13
  • Hola Willams Morales

    Es primera vez que trabajo con SQL  y soy estudiante de sistemas asi que ando aprendiendo, entiendo muy bien lo que dices. Pero te pregunto, Si mi proyecto tiene la DB dentro y estoy trazando una ruta directa ya que la database la estoy trabajando "local" ya que es unicamente para esa PC deberia trabajar con SQL server LocalDB, no?. pero mi Connectionstring deberia ser igual o cambia a la que tu te estas refiriendo ?

    domingo, 12 de febrero de 2017 23:10
  • Alex Alfonso,

    Si, sí buscas una versión ligera de SQL Server que se ejecute en modo usuario entonces una buena opción es SQL Server LocalDB. 

    ¿Instalaste en el equipo cliente SQL Server LocalDB? El medio de instalación lo encuentras en el siguiente enlace: Microsoft® SQL Server® 2012 Express, asegúrate de descargar e instalar únicamente el ejecutable 'ESN\x64\SqlLocaLDB.MSI'.

    Para SQL Server 2012 la instancia creada por defecto es v11.0, tras la instalación puedes corroborarlo escribiendo en la ventana de comandos (CMD) la siguiente instrucción:

    > SqlLocalDB info

    Finalmente, la cadena de conexión debería ser:

    "Server=(LocalDB)\v11.0; Integrated Security=true; AttachDbFileName=D:\Data\MyDB.mdf"



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Alex Alfonso lunes, 13 de febrero de 2017 1:43
    lunes, 13 de febrero de 2017 0:59
  • Gracias Willams Morales, voy a aplicarlo, pero una pregunta, los paquetes de instalacion que vienen con el setup project no funcionan? solo en tal caso que sea diferente la version lo que hago es cambiarla no ?

    lunes, 13 de febrero de 2017 1:44
  • hola Willams Morales, Siquiendo tus consejos me presento ahora con esto. Como puedo solucionarlo ?


    lunes, 13 de febrero de 2017 6:17
  • Alex Alfonso,

    Te había comentado que la instancia por defecto de SQL Server 2012 LocalDB es v11.0, y la instancia por defecto de SQL Server 2014 LocalDB es MSSQLLocalDB, si te das cuenta -esta última- es la misma instancia que escribes en la cadena de conexión con la que inicias el post y el mensaje de la excepción lo confirma: la base de datos la has creado en la versión 2014 de SQL Server LocalDB y no es posible hacer un "downgrade".

    Por tanto, debes descargar e instalar Microsoft® SQL Server® 2014 Express bajo los mismos procedimientos explicados en el aporte anterior, claro, la cadena de conexión también cambia:

    "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true; AttachDbFileName=D:\Data\MyDB.mdf"



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Alex Alfonso lunes, 13 de febrero de 2017 22:09
    lunes, 13 de febrero de 2017 6:32