Udostępnij za pośrednictwem


Nie można nawiązać połączenia z programem SQL Server na żadnym porcie innym niż 1433, jeśli używasz protokołu innego niż TCP/IP

Ten artykuł ułatwia rozwiązanie problemu występującego w przypadku używania protokołu innego niż TCP/IP do nawiązywania połączenia z programem SQL Server na porcie innym niż 1433.

Oryginalna wersja produktu: Visual C#
Oryginalny numer KB: 307645

Symptomy

Jeśli używasz protokołu innego niż protokół TCP/IP (Transmission Control Protocol/Internet Protocol), nie powiedzie się, SqlConnection.Open jeśli określisz numer portu inny niż 1433, aby nawiązać połączenie z wystąpieniem programu SQL Server.

Rozwiązanie

Aby rozwiązać ten problem, użyj protokołu TCP/IP i dołącz Server=ComputerName, PortNumber go do parametry połączenia.

Kroki odtwarzania zachowania

  1. Uruchom program Visual Studio .NET.

  2. Utwórz nowy projekt aplikacji konsolowej .NET języka Visual C#.

  3. Upewnij się, że projekt zawiera odwołanie do System.Data przestrzeni nazw i dodaj odwołanie do tej przestrzeni nazw, jeśli nie.

  4. Użyj instrukcji using w Systemprzestrzeniach nazw , System.Data, System.Data.SqlClient aby nie być wymagane do kwalifikowania deklaracji w tych przestrzeniach nazw w dalszej części kodu.

    using System;
    using System.Data;
    using System.Data.SqlClient;
    
  5. Program Visual Studio domyślnie tworzy klasę statyczną i pustą Main procedurę. Skopiuj następujący kod i wklej go w oknie Kod:

    Uwaga 16.

    Przed uruchomieniem tego kodu należy zmienić User ID <username> wartość i wartość hasła <strong password> na poprawne wartości. Upewnij się, że User ID masz odpowiednie uprawnienia do wykonania tej operacji w bazie danych.

    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. Zmodyfikuj sConnectionString ciąg zgodnie z potrzebami środowiska.

  7. Zapisz projekt.

  8. W menu Debuguj kliknij przycisk Start i uruchom projekt, aby nawiązać połączenie z bazą danych.