2014-09-23 1 views
5

В моем приложении Visual Basic у меня есть файл базы данных доступа, который я использую. Он отображается в окне проводника решений. Все работает отлично, пока я не установлю. По какой-то причине файл базы данных не работает с установкой. Думаю, мне нужно отредактировать строку соединения во время выполнения, но я не уверен. Раньше я не делал ничего подобного, и я не могу найти информацию об этом.Как скопировать файл базы данных доступа в мое приложение?

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

Когда работает моя программа, она создает каталог в

User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.accdb 

Так как я устанавливаю этот путь, не зная полный путь к App Data?

+0

Возможный дубликат [развертывание базы данных SQL для приложения VB.NET] (http://stackoverflow.com/questions/12253978/sql-database-deployment-for-vb-net-app) – jbutler483

ответ

3

Вы можете использовать

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

или

Environment.GetEnvironmentVariable("APPDATA") 

Они оба должны вернуть что-то похожее на

C:\Users\Gord\AppData\Roaming 

так что вы можете создать строку подключения, как это:

Dim dbPath = _ 
     Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & _ 
     "\CreatedFolder\Resources\DatabaseFile.accdb" 
Dim connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath 
+0

Я получаю ошибки при попытке добавив это в строку подключения. – xRuhRohx

+0

@xRuhRohx Я обновил свой ответ. –

+0

Я использовал мастер для настройки подключения к базе данных, так как бы я изменил строку подключения во время выполнения? – xRuhRohx

2

Как я хотел бы сделать это было бы:

  1. Выберите Add New Data Source . . . из окна источника данных в Visual Studio
  2. Выберите Database из списка, который появляется, и нажмите кнопку Далее
  3. Нажмите рядом
  4. В Choose your data connection странице мастера, нажмите New connection
  5. Выберите Microsoft Access Database File из выпадающего списка и нажмите кнопку Далее
  6. Выберите копию файла базы данных, которая не находится в каталоге и введите любую информацию Войти
  7. Нажмите OK
  8. Теперь Visual Studio спросит вас:

    соединение выбрано использует локальный файл данных, не находится в текущем проекте . Вы хотите скопировать файл в проект и и изменить соединение?

    Если вы копируете файл данных в свой проект, он будет копироваться в выходной каталог проекта при каждом запуске приложения. Нажмите F1 для информацию об управлении этим поведением.

Нажмите «Да», а Visual Studio добавит базу данных в ваш проект и создаст строку подключения, которая указывает на скопированную базу данных.

  1. Теперь вы, вероятно, захотите сохранить строку подключения в приложении.Config, чтобы вам не приходилось перестраивать его каждый раз, когда вы хотите использовать базу данных. Скорее всего, это сохранит строку подключения, которая использует |DataDirectory|. Измените содержание этой страницы по своему усмотрению.
  2. Пройдите через оставшуюся часть мастера и настройте свою базу данных по мере необходимости.

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

EDIT - Моя строка соединения, как оно сохраняется в App.config выглядит

<connectionStrings> 
     <add name="SOAccessDatabase.My.MySettings.Students_2000formatConnectionString" 
      connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Students_2000format.mdb" 
      providerName="System.Data.OleDb" /> 
    </connectionStrings> 

У меня также есть Сложение Действие файла базы данных установлен в «Копировать Всегда.»

+0

Проблема, с которой я сталкиваюсь, когда оставляю ее как | DataDirectory | он создает папку внутри локальной папки в AppData и по какой-то причине не копирует базу данных к ней. Я всегда получаю сообщение об ошибке. – xRuhRohx

+0

Это то, что происходит, когда я устанавливаю и запускаю ... 'C: \ Users \ Neil \ AppData \ Local \ Apps \ 2.0 \ Data \ KBBE6L8Y.4H8 \ 2X1QXHV5.A2H \ gulb..tion_20d7bfc1bd30efa8_0001.0000_dbc5cc6b3df538bc \ Data \ Resources \ TML.accdb 'не является допустимым путем. Убедитесь, что имя пути написано правильно и что вы подключены к серверу, на котором находится файл. – xRuhRohx

+0

@xRuhRohx, посмотрите на редактирование и посмотрите, помогает ли он. Это приложение получает доступ к данным только в том виде, в котором оно настроено сейчас. Надеюсь это поможет. –

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

  • Нет связанных вопросов^_^