2009-07-16 4 views
1

Я не очень хорошо разбираюсь в проблемах:Не удалось подключиться к файлу базы данных SQL Server

Прежде всего, я использую Vista.

Я создал приложение Windows в vb.net, в котором есть файл базы данных с именем Customerdb.mdf.

Я выбрал базу данных и в собственности, я выбрал вариант Embedded Resource.

Я использовал следующее соединение:

Dim constring As String 
constring = Application.StartupPath.ToString() + "\Customerdb.mdf" 
Dim con = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + constring + ";Integrated Security=True;User Instance=True") 

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

«Попытка присоединить с автоматическим именем базы данных для файла C:. \ Program File \ App \ Customerdb.mdf провалила базу данных с тем же выходы из имени или указанный файл не могут быть открыты или расположены на общей папке UNC ».

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

Не могли бы вы рассказать мне, что не так с соединением?

Любая помощь будет очень оценена. Заранее благодарен

ответ

1

Я выбрал вариант Встраиваемый ресурс.

Это означает, что файл базы данных встроен в созданный файл * .exe в качестве ресурса. Это не отдельный файл в файловой системе. Имя файла, которое вы пытаетесь создать с помощью этого кода: Application.StartupPath.ToString() + "\Customerdb.mdf" не существует.

Чтобы это исправить, у вас есть несколько вариантов:

  • Переход от Embedded Resource к Content и сказать ему «Всегда Copy»
  • Проверьте, существует ли файл и записать массив байтов на диск, прежде чем открытие базы данных, если она не
  • Измените с Embedded Resource на Content и настройте проект развертывания, чтобы поместить его в папку «Данные приложения».

Из них вам действительно нужно сделать последний, и не забудьте развернуть SQL Server Express с вашим приложением.

И, наконец, Sql Server Express - это действительно плохой выбор для использования в качестве базы данных настольных компьютеров с одним пользователем. Вы действительно должны пойти на рабочий стол (или «in-process») движок, такой как SQL Server Compact Edition, sqlite или даже Access.

+0

спасибо за ответ, я получил первый балл, но могу предоставить образец того, как это сделать, потому что я попытался, и я получил то же сообщение об ошибке. с опцией «content», файл базы данных по-прежнему не отображается в папке приложения после настройки. Я полагаю, что путь im используется правильно. благодарит за ответить! – 2009-07-17 11:58:51

+0

Вы все равно должны добавить его в проект развертывания вручную. Установка его в «Контент» просто делает его доступным для проекта, чтобы вы могли его добавить. –

+0

Спасибо, позвольте мне попробовать – 2009-07-17 12:35:36

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