none
Ayuda con conexión a Base de Datos RRS feed

  • Pregunta

  • Buenas tardes. He estado siguiendo el tutorial de este video https://www.youtube.com/watch?v=iErsuTP5dPI&t=1553s

    Se trata de hacer un Login con un Form. Lo que hace a partir del minuto 13:00 no sé porque en esa parte me sale una excepción.

    class CDConexion
        {
            private SqlConnection Conexion = new SqlConnection("Server=AD3D;DataBase=24:11:565:0");
    
            public SqlConnection AbrirConexion()
            {
                if (Conexion.State == ConnectionState.Closed)
                Conexion.Open();
                return Conexion;            
            }
    
            public SqlConnection CerrarConexion()
            {
                if (Conexion.State == ConnectionState.Open)
                Conexion.Close();
                return Conexion;
            }
    
        }

    Excepción no controlada del tipo 'System.Data.SqlClient.SqlException' en System.Data.dll

    Información adicional: 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)

    ¿Qué puede ser lo que pasa? Gracias.

    sábado, 18 de agosto de 2018 17:38

Respuestas

  • Cierto, ahí está, perdona. Solo me había fijado en la imagen y ahí estaba tapada por el cuadro de diálogo.

    Según esa cadena, el servidor se llama "AD3D". Lo primero que hay que comprobar es que esa dirección se resuelve correctamente. Para ello, abre una ventana de comandos, teclea "ping AD3D" (sin las comillas) y comprueba que la dirección IP que responde es realmente la del servidor en el que instalaste tu SQL Server.

    Si la dirección es correcta, verifica que en esa máquina está instalada una instancia predeterminada de SQL Server. Ojo, tiene que ser predeterminada, con esa cadena de conexión no se acepta una instancia con nombre.

    Después, usa el SQL Server Configuration Manager para cerciorarte de que la instancia tiene habilitadas las conexiones TCP (requeridas si se usa esa cadena de conexión).

    Si es una máquina distinta de la que está ejecutando el programa, comprueba también que en el Firewall está abierto el puerto 1433 requerido por la mencionada conexión.

    Bueno, y creo que eso es lo más importante. Si con eso no basta, descríbenos cómo es tu instalación: Qué SQL server has instalado, qué clase de instancia, si es la misma máquina u otra, cómo se conectan las máquinas, etc., y seguiremos depurado el problema.

    • Marcado como respuesta SiYue Music jueves, 13 de junio de 2019 15:43
    domingo, 19 de agosto de 2018 6:20
  • Hola, Gracias por responder. El nombre de mi servidor es, según SQL Server, "(localdb)\AD3D" y a mi base de datos lo llamé "24:11:565:0".

    Probé a poner el nombre del servidor de varias maneras hasta que funcionó con "Server=(localdb)\\AD3D;..." No sé si es la manera correcta de ponerlo, pero al menos funciona hehehe

    • Marcado como respuesta SiYue Music domingo, 19 de agosto de 2018 16:31
    domingo, 19 de agosto de 2018 16:31

Todas las respuestas

  • Casi con toda seguridad lo que pasa es exactamente lo que dice el mensaje de error. Has configurado en la cadena de conexión un servidor que o bien no es correcto o no es accesible desde esa máquina.

    No se ve la cadena en la imagen que has pegado, pero si nos indicas qué es lo que pone en la cadena de conexión podemos indicarte cuál es el servidor al que intenta conectarse, y así puedes ver en qué difiere del que realmente tienes.

    sábado, 18 de agosto de 2018 18:55
  • Hola, la cadena de conexión está en el cuadro de código que esta sobre la imagen.
    sábado, 18 de agosto de 2018 22:59
  • Cierto, ahí está, perdona. Solo me había fijado en la imagen y ahí estaba tapada por el cuadro de diálogo.

    Según esa cadena, el servidor se llama "AD3D". Lo primero que hay que comprobar es que esa dirección se resuelve correctamente. Para ello, abre una ventana de comandos, teclea "ping AD3D" (sin las comillas) y comprueba que la dirección IP que responde es realmente la del servidor en el que instalaste tu SQL Server.

    Si la dirección es correcta, verifica que en esa máquina está instalada una instancia predeterminada de SQL Server. Ojo, tiene que ser predeterminada, con esa cadena de conexión no se acepta una instancia con nombre.

    Después, usa el SQL Server Configuration Manager para cerciorarte de que la instancia tiene habilitadas las conexiones TCP (requeridas si se usa esa cadena de conexión).

    Si es una máquina distinta de la que está ejecutando el programa, comprueba también que en el Firewall está abierto el puerto 1433 requerido por la mencionada conexión.

    Bueno, y creo que eso es lo más importante. Si con eso no basta, descríbenos cómo es tu instalación: Qué SQL server has instalado, qué clase de instancia, si es la misma máquina u otra, cómo se conectan las máquinas, etc., y seguiremos depurado el problema.

    • Marcado como respuesta SiYue Music jueves, 13 de junio de 2019 15:43
    domingo, 19 de agosto de 2018 6:20
  • Hola, Gracias por responder. El nombre de mi servidor es, según SQL Server, "(localdb)\AD3D" y a mi base de datos lo llamé "24:11:565:0".

    Probé a poner el nombre del servidor de varias maneras hasta que funcionó con "Server=(localdb)\\AD3D;..." No sé si es la manera correcta de ponerlo, pero al menos funciona hehehe

    • Marcado como respuesta SiYue Music domingo, 19 de agosto de 2018 16:31
    domingo, 19 de agosto de 2018 16:31
  • Sí, es la manera correcta. Lo de la doble barra se debe a que C# usa la barra como carácter de escape, por lo que tienes que duplicarla cuando de verdad quieres poner una barra.

    Si alguna vez quitas la cadena de conexión del fuente en C# y la mueves al fichero .config (como debe de hacerse en una aplicación real que no sea solo de prueba), entonces acuérdate de quitar la doble barra y dejar una sola.

    domingo, 19 de agosto de 2018 16:55