Вы не можете подключиться к SQL Server на любом порту, отличном от 1433, если используется протокол, отличный от TCP/IP

Эта статья поможет устранить проблему, возникающую при использовании протокола, отличного от TCP/IP, для подключения к SQL Server на порту, отличном от 1433.

Исходная версия продукта: Visual C#
Исходный номер базы знаний: 307645

Симптомы

Если вы используете протокол, отличный от протокола управления передачей или протокола Интернета (TCP/IP), SqlConnection.Open не удается указать номер порта, отличный от 1433, для подключения к экземпляру SQL Server.

Решение

Чтобы устранить эту проблему, используйте протокол TCP/IP и включите Server=ComputerName, PortNumber его в строка подключения.

Шаги для воспроизведения поведения

  1. Запустите Visual Studio .NET.

  2. Создайте проект консольного приложения Visual C# .NET.

  3. Убедитесь, что проект содержит ссылку на System.Data пространство имен и добавьте ссылку на это пространство имен, если это не так.

  4. Используйте инструкцию using в Systemпространствах имен , System.DataSystem.Data.SqlClient чтобы не требоваться квалифицировать объявления в этих пространствах имен позже в коде.

    using System;
    using System.Data;
    using System.Data.SqlClient;
    
  5. Visual Studio создает статический класс и пустую Main процедуру по умолчанию. Скопируйте следующий код и вставьте его в окно кода:

    Примечание.

    Перед запуском User ID <username> этого кода необходимо изменить значение и значение пароля <strong password> на правильные значения. Убедитесь, что User ID у базы данных есть соответствующие разрешения для выполнения этой операции.

    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. Измените sConnectionString строку соответствующим образом для вашей среды.

  7. Сохраните проект.

  8. В меню отладки нажмите кнопку "Пуск" и запустите проект, чтобы подключиться к базе данных.