2011-01-27 3 views
0

Мой код выглядит следующим образом:Ошибка при подключении к SQL Server с помощью C#

string constring = "Data Source=132.186.127.169"+ "Initial Catalog=CadPool1;" + "Integrated Security=True"; 
SqlConnection con; 
con = new SqlConnection(constring); 
con.Open(); 
string query="SELECT * from CadPoolProjectTable1"; 
SqlCommand cmd = new SqlCommand(query, con); 
cmd.ExecuteNonQuery(); 
MessageBox.Show("selected"); 
con.Close(); 

Я получаю сообщение об ошибке в строке con.Open();. Ошибка:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

ответ

2

Ваша строка соединения является неправильным:

string constring = 
    "Data Source=132.186.127.169;Initial Catalog=CadPool1;Integrated Security=True"; 

Вам не нужно сцепить строки вместе, но что более важно, вы пропали без вести с запятой «;» между источником данных и исходными настройками каталога.

4

Вам не хватает ';' после имени сервера в строке подключения.

string constring = "Data Source=132.186.127.169"+ "Initial Catalog=CadPool1;" + "Integrated Security=True"; 

Это должно быть

string constring = "Data Source=132.186.127.169;"+ "Initial Catalog=CadPool1;" + "Integrated Security=True"; 

ошибка говорит, что ваше приложение не может подключиться к серверу. Я бы сделал следующее.

  1. Проверьте адрес сервера (на беглый взгляд это выглядит хорошо)
  2. Connect с помощью студии управления и в вашем случае это должно было сработать.

Это означает, что проблема связана с кодом. Поскольку вы конкатенируете строку, я бы отлаживал код и смотрел, какой конечный результат для строки соединения.

Совет. Если это веб-приложение, добавьте строку подключения в файл web.config. Дополнительная информация здесь How to: Read Connection Strings from the Web.config File

+0

Ха, я получил ответ первым, но вы получили голоса? :) Ну, может быть, в следующий раз ... –

+0

Похоже, я опоздал на несколько секунд.Я проголосовал за вас :) – Shoban

0

Во-первых, вам не хватает ; (точка с запятой) между источником данных и исходным каталогом.

Во-вторых, если это только что установленный экземпляр SQL Server, вам может потребоваться перейти в диспетчер конфигурации SQL Server и включить протокол (ы), который вам понадобится.

0

Проверьте, можете ли вы указать ping сервер, упомянутый через cmd Также вы пытаетесь установить telnet на сервер со своего компьютера. Еще одна вещь, которую нужно проверить, - это порт, на который настроен сервер, если он не по умолчанию, вам нужно будет добавить порт как 132.186.127.169,XXX

+0

+1 Чтобы компенсировать downvote; это звуковое пособие, и если вы скопируете/вставьте имя сервера из инспектора часов, вы заметите, что он включен в dbname :) – Andomar

0

Имя сервера в строке соединения неверно. а также, поскольку нет динамических значений, вам не нужна конкатенация строк. Измените его на:

string constring = "Data Source=132.186.127.169; 
        Initial Catalog=CadPool1; 
        Integrated Security=True"; 
3

Вы упускаете точку с запятой в вашей строке соединения

Data Source=132.186.127.169;"+ "Initial... 
         ^

Если вам нужно построить строку подключения себе, что вы можете использовать SqlConnectionStringBuilder класс. Таким образом, вы не будете так обеспокоены этими тонкими ошибками.

+0

+1 для использования ConnectionStringBuilder вместо того, чтобы объединить все вручную ... –

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