Vous ne pouvez pas vous connecter à SQL Server sur un port autre que 1433 si vous utilisez un protocole autre que TCP/IP

Cet article vous aide à résoudre le problème qui se produit lorsque vous utilisez un protocole autre que TCP/IP pour vous connecter à SQL Server sur un port autre que 1433.

Version du produit d’origine : Visual C#
Numéro de base de connaissances d’origine : 307645

Symptômes

Lorsque vous utilisez un protocole autre que le protocole TCP/IP (Transmission Control Protocol/Internet Protocol), SqlConnection.Open échoue si vous spécifiez un numéro de port autre que 1433 pour vous connecter à une instance de SQL Server.

Résolution

Pour résoudre ce problème, utilisez le protocole TCP/IP et incluez-le Server=ComputerName, PortNumber dans la chaîne de connexion.

Étapes à suivre pour reproduire le comportement

  1. Démarrez Visual Studio .NET.

  2. Créez un projet d’application console Visual C# .NET.

  3. Assurez-vous que votre projet contient une référence à l’espace System.Data de noms et ajoutez une référence à cet espace de noms si ce n’est pas le cas.

  4. Utilisez l’instruction using sur les Systemespaces de noms , System.Dataespaces System.Data.SqlClient de noms afin que vous ne soyez pas obligé de qualifier les déclarations dans ces espaces de noms plus loin dans votre code.

    using System;
    using System.Data;
    using System.Data.SqlClient;
    
  5. Visual Studio crée une classe statique et une procédure vide Main par défaut. Copiez le code suivant et collez-le dans la fenêtre Code :

    Note

    Vous devez modifier la User ID <username> valeur et la valeur du mot de passe <strong password> en valeurs correctes avant d’exécuter ce code. Vérifiez que User ID vous disposez des autorisations appropriées pour effectuer cette opération sur la base de données.

    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. Modifiez la sConnectionString chaîne en fonction de votre environnement.

  7. Enregistrez votre projet.

  8. Dans le menu Débogage , cliquez sur Démarrer et exécutez votre projet pour vous connecter à la base de données.