Member 11298827 Ответов: 2

Не удается подключиться к локальному файлу БД в VS-2015


У меня есть проект Windows Form в VS2015, который использует файл локальной базы данных (.MDF).
Код работает уже некоторое время, но недавно у меня возникла проблема с восстановлением из файла резервной копии. Я решил удалить SQL Server (разные версии) и сделать новую установку SQL Server Express 2016 SP2 (Расширенная версия).

Установка прошла нормально, и я действительно включил LocalDB, который необходим для подключения local .Файлы базы данных MDF. В разделе "Программы и компоненты" я вижу несколько элементов Microsoft SQL Server 2016, включая LocalDB.

Теперь по какой-то причине я не могу подключиться к локальной базе данных. В VS, в Обозревателе серверов, я пытаюсь добавить .MDF-файл для "подключения к данным". В диалоговом окне "Добавить соединение" я выбираю в качестве источника "файл базы данных Microsoft SQL Server". Затем я просматриваю и выбираю .МДФ-файл. Я использую проверку подлинности Windows (которую выбираю во время установки SQL Server). Нажатие на кнопку "проверить соединение" приводит к следующей ошибке:

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

Я считаю, что проблема заключается в чем-то с установкой SQL Server, потому что установленная версия моего проекта также не может подключиться к базе данных. Может быть, это проблема реестра Windows?

Буду очень признателен за помощь.

Что я уже пробовал:

Я сделал новую установку SQL Server Express 2016 SP2 (Расширенная версия).
Я проверил, что "LocalDB" был включен в установку.
Попробовал подключиться к известному рабочему .Файл базы данных MDF в Visual Studio 2015,
но всегда получаю сообщение об ошибке.

Richard MacCutchan

Это звучит так, как будто Visual Studio не распознает, что файл должен быть доступен SQL Express, и все еще пытается подключиться к удаленному серверу. Проверьте свойства базы данных, чтобы узнать, можно ли ее изменить.

GenJerDan

Где находится MDF и правильно ли установлены разрешения на это местоположение?

Member 11298827

Генджердан,

Файл находится в папке проекта, и да, разрешения установлены правильно. Сообщение об ошибке, по-видимому, указывает на то, что сервер не может быть найден. Все это началось, когда я удалил SQL Server, а затем сделал новую установку SQL Server Express 2016 (с LocalDB). Мое приложение, которое установлено на той же машине, также не будет подключаться. Я думаю, что это должно быть повреждение реестра Windows, но я понятия не имею, как это устранить. В Regedit я вижу записи для:

SQL Server
SQL Server 2005
SQL Server 2012
SQL Server 2014
SQL Server 2016
SQL Server 2017
Локальная БД SQL Server
Собственный клиент SQL Server 11.0

В какой-то момент у меня был установлен 2017 год, но я его удалил. 2014 год также больше не установлен. Я не хочу начинать возиться с реестром, пока не буду точно знать, что делаю, а я этого не делаю.

2 Ответов

Рейтинг:
2

Member 11298827

Ричард,

Спасибо за ваш ответ. Я не совсем понимаю, что вы подразумеваете под "проверкой свойств базы данных".." Если я посмотрю на свойства файла .mdf, то тип будет "первичный файл данных базы данных SQL Server".

Кроме того, я не могу создать новый файл базы данных из Проводника сервера, используя "создать новую базу данных SQL Server" в разделе "подключения к данным". В появившемся диалоговом окне есть раскрывающийся список серверов, но этот список пуст. Это как если бы VS не видел никаких серверов.
В Обозревателе серверов в разделе "серверы" я вижу имя своего компьютера, а под ним-множество служб, в том числе -

SQL Server (SQLEXPRESS)
Агент SQL Server (SQLEXPRESS)
Браузер SQL Server
Служба SQL сервера программы улучшения качества программного обеспечения (отчеты)
Панель запуска SQL Server (SQLEXPRESS)
Службы SQL Server Reporting Services (SQLEXPRESS)
SQL Server VSS Writer

Я думаю, что проблема не в VS, потому что, как я уже сказал, мое приложение (работающее вне VS), которое обращается к тому же файлу .MDF, также не работает, и оно действительно работало до того, как я удалил и переустановил SQL Server Express 2016.


Richard MacCutchan

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

Member 11298827

Ричард,
В любом случае спасибо за попытку!

Рейтинг:
17

Member 11298827

Обновление - экземпляр LocalDB по умолчанию был установлен на V12.0 (версия 2014 года), что помешало мне подключиться к базе данных, которая была V13.0

Но тогда я не мог понять, как изменить экземпляр по умолчанию на V13.0. попробовал использовать утилиту командной строки SqlLocalDB.exe но это дало мне только "ошибку формата".

Наконец, я зашел в раздел "программы и компоненты", выбрал Sql Server 2016 LocalDB и сделал "ремонт". Похоже, это все исправило.