none
Establecer conexión remota con servidor SQL desde un Windows Form en C# RRS feed

  • Pregunta

  • Buenas a tod@s!

    Estoy realizando un proyecto en C# con Visual Studio desde el cual accedo a una base de datos que tengo creada con SQL Management Studio. Tengo creada la conexión en C# de la siguiente forma:

    public class ConexionSQL
        {
            public static SqlConnection ObtenerConexion()
            {
                SqlConnection conexion = new SqlConnection("Data source= localhost, 1433; Initial Catalog= BBDD; User Id = usuario; Password = contraseña; Integrated Security=false");
                conexion.Open();

                return conexion;
            }
        }

    Cuando compilo la aplicación y lo ejecuto desde PC1 (el cual tiene Management Studio instalado) no tengo ningún problema para acceder. El objetivo es que pueda acceder a esta base de datos desde cualquier pc sin que tenga Management Studio instalado y, cuando lo intento, me salta el siguiente error:

    Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas. (provider: Named Pipes Provider, error: 40 - No se pudo abrir una conexión con SQL Server) (Microsoft SQL Server, Error: 2)

    He leído posibles soluciones en muchos foros, incluido este, pero no consigo poner solución al problema.

    Ya he probado activando el puerto 1433 en entrada y salida en el Firewall de Windows, habilitando conexiones remotas

    desde Management Studio, habilitando también TCP y demás servidores desde Sql Server Configuration Manager.

    Supongo que mi problema estará en la forma de definir la conexión en el código de C#.

    Por favor, les agradecería cualquier tipo de ayuda y/o comentario ya que me estoy iniciando en este mundo y todavía

    es muy desconocido para mí.

    Si necesitan más información sobre mi programa no duden en preguntarme! Mil gracias!


    jueves, 5 de marzo de 2020 11:52

Todas las respuestas

  • Hola JosFebo, lo que sucede en realidad es lo siguiente debes apuntar a la pc donde esta el motor de base de datos sql, en tu caso debería ser donde tienes instalado el SQL Management Studio, que no significa que ses la misma pc donde esta el motor sql ya que puedes tener el motor en una pc y el management en otra, y en tu caso la linea esta deberias cambiar

    SqlConnection conexion = new SqlConnection("Data source= localhost, 1433; Initial Catalog= BBDD; User Id = usuario; Password = contraseña; Integrated Security=false");

    Data source= localhost lo cambias por el nombre de la pc o por la ip

    jueves, 5 de marzo de 2020 13:03
  • holas

    Paso aclarar que Management Studio no tiene nada que ver con las conexiones a la db, ese es solo un Manager, lo que importa es el motor de base de datos, despues como lo administres puede ser con cualquier tool

    Ahora bien, recuerda que por defecto Sql Server solo permite conexiones locales, si quieres conectarte de foram remota deberas habilitarlo

    Cómo conectarse a un SQL Server remoto

    Enable Remote Connection on SQL Server 2008 Express

    esto sucede en todas las distribuciones de Sql Server, tiene que habilitar la configuracion remota

    Ademas tambien validar que el firewall de windows no este bloqueando el puerto de la base de datos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 5 de marzo de 2020 13:09
  • Hola JosFebo, lo que sucede en realidad es lo siguiente debes apuntar a la pc donde esta el motor de base de datos sql, en tu caso debería ser donde tienes instalado el SQL Management Studio, que no significa que ses la misma pc donde esta el motor sql ya que puedes tener el motor en una pc y el management en otra, y en tu caso la linea esta deberias cambiar

    SqlConnection conexion = new SqlConnection("Data source= localhost, 1433; Initial Catalog= BBDD; User Id = usuario; Password = contraseña; Integrated Security=false");

    Data source= localhost lo cambias por el nombre de la pc o por la ip

    Buenas! Muchas gracias por contestar.

    He cambiado lo que me has comentado, poniendo la dirección ip de mi ordenador en vez de "localhost". He probado desde una máquina virtual y funciona perfectamente (antes no funcionaba). Después he probado desde otro pc, en otra red, y no ha funcionado, pero arroja un error distinto. El error es el siguiente:

    A network-related or instance-specific error occurred while establishing a connection to SQL server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0

    Alguna idea? Gracias!


    viernes, 6 de marzo de 2020 8:03
  • holas

    Paso aclarar que Management Studio no tiene nada que ver con las conexiones a la db, ese es solo un Manager, lo que importa es el motor de base de datos, despues como lo administres puede ser con cualquier tool

    Ahora bien, recuerda que por defecto Sql Server solo permite conexiones locales, si quieres conectarte de foram remota deberas habilitarlo

    Cómo conectarse a un SQL Server remoto

    Enable Remote Connection on SQL Server 2008 Express

    esto sucede en todas las distribuciones de Sql Server, tiene que habilitar la configuracion remota

    Ademas tambien validar que el firewall de windows no este bloqueando el puerto de la base de datos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Muchas gracias por responder! 

    Ya había visto estas instrucciones y las seguí antes tal y como indican. Entiendo entonces que el problema no está relacionado con esto, aún así muchas gracias. Si se te ocurre alguna otra cosa sería genial!


    viernes, 6 de marzo de 2020 8:04