2013-10-09 7 views
0

Я пытаюсь подключиться к sqlServer. Для этого я использую следующий код:ошибка при установлении соединения с сервером sql

string server = "1.1.1.1,1433"; 
var stringBuilder = new SqlConnectionStringBuilder 
        { 
         UserID = "id", 
         Password = "pass", 
         MultipleActiveResultSets = true, 
         DataSource = server, 
         NetworkLibrary = "DBMSSOCN", 
         InitialCatalog = "iCatalog" 
        }; 


using (var con = new SqlConnection(stringBuilder.ToString())) 
{ 
    try 
    { 
     con.Open(); 
     MessageBox.Show("Connected"); 
    } 
    catch (Exception exception) 
    { 
     MessageBox.Show(exception.Message); 
    } 
} 

Но когда программа пытается открыть соединение я получаю исключение «при установлении соединения с сервером SQL произошла ошибка сети связанного или экземпляра конкретного ....». И если я изменю Ipaddress и порт ServerName и, например, как это:

var server = @"MSSQL01\SQLENTW"; 

Я могу подключиться к серверу. ConnectionString похожа на connectionstrings.com. Так может кто-нибудь указать мне, где я поступаю неправильно?

Заранее спасибо.

+0

ли вы на самом деле работает сервер SQL на порт 1433? Поскольку вы не используете имя экземпляра по умолчанию, оно будет по умолчанию запущено на случайно назначенный порт, а не 1433. – steoleary

+0

@steoleary это 1433 – Sasha

ответ

2

Попробуйте

string server = "1.1.1.1:1433"; 
+0

Я все еще получаю ту же ошибку – Sasha

1

Я думаю, что ваша машина работает несколько экземпляров SQL Server. Например. MACHINENAME \ SQLEXPRESS, MACHINENAME \ MSSQLSERVER и т. Д.

Когда вы указываете IP-адрес, он подключается к экземпляру по умолчанию. Поскольку он не включен с TCP/IP, он возвращает ошибку. Вы можете перейти к конфигурации сервера sql (Configuration Tools-> утилита конфигурирования SQL Server) и проверить, включен ли tcp для всех экземпляров.

+0

Можете ли вы объяснить, где именно. Я работаю в конфигурационном менеджере sql server и не могу найти его там – Sasha

+0

в Configuration Manager -> Конфигурация сети SQL Server -> Протоколы, тогда вы можете видеть протоколы с правой стороны. Нажмите всю конфигурацию netwrk и включите tcp/ip –

+0

Он был активным все время – Sasha

0

Как насчет добавления имени экземпляра?

1.1.1.1\SQLENTW,1433 

В дополнение к выше использования ниже спинета найти на какой порт SQLServer слушает

DECLARE @PORT nvarchar(20), @key nvarchar(100) 
IF CHARINDEX('\',@@SERVERNAME,0) <>0 
BEGIN 
      SET @KEY = 'SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\' [email protected]@SERVICENAME+ 
                          '\MSSQLSERVER\SUPERSOCKETNETLIB\TCP' 
END 
ELSE 
BEGIN 
      SET @KEY = 'SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP' 
END 

EXEC MASTER..XP_REGREAD @ROOTKEY='HKEY_LOCAL_MACHINE', @[email protected], @VALUE_NAME='TCPPORT', @[email protected] OUTPUT 
SELECT @PORT 
+0

это не помогает – Sasha

+0

вы проверили номер порта? – Appyks

+0

это стандартный порт, я проверил его в диспетчере конфигурации – Sasha

Смежные вопросы