2014-10-21 4 views
1

Я покажу код, который я использую, но я не могу подключиться к SQL Server через Visual C#. Я установил, что пришел в пакет C#, и я получаю эту ошибку:Подключение к SQL Server в Visual C#

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: 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)

Я не могу понять, как подключиться к серверу. Я использую Windows 8, SQL Sever 2012 (Visual Studio 2012), и если я перейду к подключению на верхней панели инструментов, не имеет значения, использую ли я (локальный), localhost или мой IP-адрес. Я не могу понять это, и это сводит меня с ума! Вот мой код, если это поможет.

private void btnSave_Click(object sender, EventArgs e) 
{ 
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
     new System.Data.SqlClient.SqlConnection("Server=(local);Database=Database1DataSet;Trusted_Connection=True;"); 

    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); 
    cmd.CommandType = System.Data.CommandType.Text; 
    cmd.CommandText = "INSERT VALUES (id, Medname, MedDose, MedAm, MedNoon, MedEve, MedNight, MedPRN, MedOther) VALUES (1, 'Clonazepam', '2mg', 'true', 'true', 'false', 'true', 'true', 'false')"; 
    cmd.Connection = sqlConnection1; 

    sqlConnection1.Open(); 
    cmd.ExecuteNonQuery(); 
    sqlConnection1.Close(); 
} 

Большое спасибо. Это мой первый опыт использования SQL Server через Visual Studio.

+1

Вы убедились, что SQL Server фактически установлен и работает через службы и/или диспетчер задач? Я предполагаю, что вы подразумеваете под «SQL Sever 2012 (Visual Studio 2012)», что вы выбрали вариант установки «SQL Server Express LocalDB» при установке Visual Studio, правильно? Проблема здесь в том, что SQL Server либо не установлен, установлен, но не запущен, либо не настроен на связь через Named Pipes. –

+3

Вопрос задавался так много раз, и несколькими способами. –

+0

Проверьте настройки своих клиентских протоколов в Sql Server Configuration Manager и убедитесь, что они включены (включите все, если вы уверены, что это безопасно на вашем компьютере). (После подтверждения того, что, по-видимому, сначала сказал @scrutzky) –

ответ

1

Если вы установили SQL Server как часть процесса установки Visual Studio 2012, то он установил SQL Server Express LocalDB. LocalDB очень легкий и не имеет постоянно работающего сервиса. Если вы действительно установили LocalDB при установке Visual Studio, вы должны увидеть «экземпляр», перейдя в меню View в Visual Studio и выбрав Проводник объектов SQL Server. Там должна быть папка (если можно так выразиться) для «SQL Server» и расширение, которое должно показать вам что-то вдоль линий:

(localdb)\V11
или
(localdb)\Projects

Что бы это значение, это то, что вы указываете для «server =» в строке подключения. Таким образом, строка подключения должна выглядеть следующим образом (из-за обратные косые черты, вы должны предварить строку с @):

@"Server=(localdb)\V11;Database=Database1DataSet;Trusted_Connection=True;"

Кроме того, при создании нового проекта в Visual Studio, он должен предварительно введите правильную строку соединения в Отладка вкладка Свойства проекта.

EDIT:
Кроме того, вы можете найти имя экземпляра (ов) в следующем месте, каждый экземпляр будет вложенной:

C:\Users\{YourUserName}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

+0

Здравствуйте, спасибо. Я получал это, когда играл с настройками SQL на панели инструментов. Я попробую это. В настоящее время я устанавливаю SQL Server 2012 с сайта Microsoft. Мне нужно было поставить два \\ after (localdb) – sandorfalot

+0

@sandorfalot: я смущен. Вы получали то, что играли с настройками SQL? Какой SQL Server вы устанавливаете? Экспресс? Вы также устанавливаете Express LocalDB? Что вы имеете в виду, что вы получили сообщение об ошибке «Проекты»? Я добавлю что-то в свой ответ, чтобы найти имя экземпляра. –

+0

Извините за путаницу. У меня установлен SQL Express LocalDB, который в настоящее время подключается к базе данных, но запрашивает имя пользователя и пароль. Таким образом, я исправил основную часть - я могу подключиться к базе данных. – sandorfalot

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