Попытка присоединиться к файлу базы данных SQL Server не удалась - PullRequest
1 голос
/ 17 июля 2009

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

Во-первых, я использую 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 Ответ

1 голос
/ 17 июля 2009

Я выбрал параметр «Встроенный ресурс».

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...