Compartir a través de


No se puede conectar a SQL Server en ningún puerto distinto de 1433 si usa un protocolo distinto de TCP/IP.

Este artículo le ayuda a resolver el problema que se produce cuando se usa un protocolo distinto de TCP/IP para conectarse a SQL Server en un puerto distinto de 1433.

Versión original del producto: Visual C#
Número de KB original: 307645

Síntomas

Cuando se usa un protocolo distinto del Protocolo de control de transmisión/Protocolo de Internet (TCP/IP), SqlConnection.Open se produce un error si especifica un número de puerto distinto de 1433 para conectarse a una instancia de SQL Server.

Solución

Para resolver este problema, use el protocolo TCP/IP e incluya Server=ComputerName, PortNumber en el cadena de conexión.

Pasos para reproducir el comportamiento

  1. Inicie Visual Studio .NET.

  2. Cree un proyecto de aplicación de consola .NET de Visual C#.

  3. Asegúrese de que el proyecto contiene una referencia al System.Data espacio de nombres y agregue una referencia a este espacio de nombres si no lo hace.

  4. Use la instrucción using en los Systemespacios de nombres , System.Data, System.Data.SqlClient para que no sea necesario calificar las declaraciones en esos espacios de nombres más adelante en el código.

    using System;
    using System.Data;
    using System.Data.SqlClient;
    
  5. Visual Studio crea una clase estática y un procedimiento vacío Main de forma predeterminada. Copie el código siguiente y péguelo en la ventana Código:

    Nota:

    Debe cambiar el User ID <username> valor y el valor de contraseña <strong password> a los valores correctos antes de ejecutar este código. Asegúrese de que User ID tiene los permisos adecuados para realizar esta operación en la base de datos.

    class Class1
    {
        static void Main(string[] args)
        {
            string sConnectionString;
            sConnectionString = "User ID=<username>;Password =<strong password>;Initial Catalog=pubs;Data Source=myServer,1200";
            SqlConnection objConn = new SqlConnection(sConnectionString);
            objConn.Open();
            SqlDataAdapter daAuthors = new SqlDataAdapter("Select * From Authors", objConn);
    
            DataSet dsPubs = new DataSet("Pubs");
            daAuthors.FillSchema(dsPubs, SchemaType.Source, "Authors");
            daAuthors.Fill(dsPubs, "Authors");
            daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            daAuthors.Fill(dsPubs, "Authors");
    
            DataTable tblAuthors;
            tblAuthors = dsPubs.Tables["Authors"];
            foreach (DataRow drCurrent in tblAuthors.Rows)
            {
                Console.WriteLine("{0} {1}",
                drCurrent["au_fname"].ToString(),
                drCurrent["au_lname"].ToString());
            }
            Console.ReadLine();
        }
    }
    
  6. Modifique la sConnectionString cadena según corresponda para su entorno.

  7. Guarda el proyecto.

  8. En el menú Depurar , haga clic en Inicio y ejecute el proyecto para conectarse a la base de datos.