Невозможно установить соединение SQL - PullRequest
0 голосов
/ 20 сентября 2011

Возникли проблемы с моим кодом подключения SQL -

SqlConnection con = new SqlConnection("Data Source=D:\\MyDocuments\\Desktop\\WorkHours\\WorkHours\\App_Data\\Database1.sdf;" + "Trusted_Connection=true;");
con.Open();

Только я Прохожу эти две строки, просто пытаюсь установить соединение и получаю эту ошибку:

При установке соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске указанного сервера / экземпляра)

Я на 100% уверен, что URL моей базы данных правильный.Помощь будет оценена

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Вы используете неправильный тип соединения / провайдера.

Файл вашей базы данных имеет расширение * .sdf, что означает, что вы используете Sql Server Compact Edition, а для Compact Edition требуется пространство имен System.Data.SqlCe и объект SqlCeConnection.

После того, как вы исправитечто у вас все еще есть две проблемы с вашим кодом:

  1. Не задавайте жестко код пути к файлу вашей базы данных.Добавьте файл в Visual Studio в качестве ресурса и получите код для его копирования в папку «Данные приложения» при запуске приложения, так что копирование завершится неудачно, если файл уже существует.
  2. Убедитесь, что ваше подключение вставлено вблок try / finally, и для предпочтения выполните это с помощью блока using.
1 голос
/ 20 сентября 2011

http://www.connectionstrings.com/ - отличный сайт, и я виновен в том, что забыл и правильный синтаксис строки подключения.

http://www.connectionstrings.com/sql-server-2008

Если вы используете компактное издание -

http://www.connectionstrings.com/sql-server-2005-ce

Data Source =MyData.sdf; Persist Security Info =False; 

или ...

Data Source =" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf; Persist Security Info =False; 
...