none
Problema con SQL Server RRS feed

  • Pregunta

  • Hola y gracias por entrar.

    Para la universidad hice un programa que usa base de datos, mas especifico, una base de datos local SQL server, lo cual crea un archivo de extensión .mdf. Cuando creé la BD, me preguntó si quería guardarla en el path de la aplicación o algo por el estilo, le dije que si y me creo esta cadena de conexión: 

    "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\sor.mdf;Integrated Security=True;Connect Timeout=30"

    Para conectarme uso esto:

                Using con As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\sor.mdf;Integrated Security=True;Connect Timeout=30")
                    con.Open()

    A me me funciona perfecto.

    El problema es cuando lo instalo en otras computadoras, no conecta con la base de datos y me da el siguiente error:

    Deduje que era necesario instalar SQL server en la otra PC, asi que le instale una versión liviana de SQL server pero no paso nada, sigue dando el error.

    ¿Cómo soluciono eso?

    ¿Y para no tener que instalar ningún software en otras PC se usa SQLite? 

    Desde ya, muchas gracias

    • Cambiado Enrique M. Montejo sábado, 19 de noviembre de 2016 8:10 Pregunta relacionada con la instalación de Microsoft SQL Server LocalDB.
    sábado, 19 de noviembre de 2016 2:59

Respuestas

  • No es que la cadena no funcione, lo que ocurre es que se conecta a un tipo concreto de servidor que tiene que estar previamente instalado. Si no esta instalado, pues no se puede conectar. No quiere decir que la cadena este mal, sino que no concuerda con los medios disponibles en la maquina en la que la estas usando.
    lunes, 21 de noviembre de 2016 19:58

Todas las respuestas

  • Para poder usar la cadena de conexión tal como la tienes, necesitas tener instalado un Sql Server en su variante LocalDb. Necesariamente tiene que ser esa edición, otras ediciones que no sean LocalDB no soportan esa forma de conectar la base de datos. Lo cuál no quiere decir que no puedas usar otra edición, simplemente tendrías que cambiar la cadena de conexión y adjuntar tu archivo en la manera requerida por la edición que estés usando. Por ejemplo, podrías usar una edición Express y cambiar (localdb)\mssqllocaldb por (local)\sqlexpress. Y también se pueden usar ediciones más grandes attachando el .mdf al servicio SQL y cambiando la cadena de conexión.

    Si decides cambiarte a SQLite en lugar de SQL Server, entonces tendrás que revisar y modificar todo el programa, porque cambia la forma de acceder a la base de datos. También podrías considerar la edición Compact de SQL Server, pero esta no es compatible con las ediciones grandes y también requerirá cambios en tu programa (aunque posiblemente no tan grandes como los cambios que tendrías que hacer para SQLite).

    sábado, 19 de noviembre de 2016 9:26
  • Voy a probar eso, muchas gracias, igual es raro que no funcione esa cadena, ya que es la que me genera automáticamente cuando me crea el mdf
    lunes, 21 de noviembre de 2016 12:54
  • No es que la cadena no funcione, lo que ocurre es que se conecta a un tipo concreto de servidor que tiene que estar previamente instalado. Si no esta instalado, pues no se puede conectar. No quiere decir que la cadena este mal, sino que no concuerda con los medios disponibles en la maquina en la que la estas usando.
    lunes, 21 de noviembre de 2016 19:58