2014-09-23 29 views
5

W mojej aplikacji Visual Basic mam plik bazy danych dostępu, którego używam. Pojawia się w oknie eksploratora rozwiązań. Wszystko działa świetnie, dopóki nie zainstaluję. Plik bazy danych nie jest instalowany z jakiegoś powodu. Chyba muszę edytować ciąg połączenia podczas uruchamiania, ale nie jestem pewien. Nigdy wcześniej czegoś takiego nie robiłem i nie mogę znaleźć informacji na jego temat.Jak skopiować plik bazy danych dostępu do mojej aplikacji?

Jeśli ktoś może wysłać mnie do samouczka lub podać krótkie wyjaśnienie, jak korzystać z bazy danych dostępu po zainstalowaniu aplikacji.

Kiedy mój program działa, tworzy katalog w

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

Więc jak mam ustawić tę drogę, nie wiedząc, pełną ścieżkę dostępu do danych aplikacji?

+0

możliwy duplikat [wdrożenia bazy danych SQL dla aplikacji VB.NET] (http://stackoverflow.com/questions/12253978/sql-database-deployment-for-vb-net-app) – jbutler483

Odpowiedz

3

Można użyć

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

lub

Environment.GetEnvironmentVariable("APPDATA") 

Powinny one zarówno powrócić coś podobnego do

C:\Users\Gord\AppData\Roaming 

więc można zbudować ciąg połączenia tak:

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

Pojawiają się błędy, gdy próbuję dodając to do ciągu połączenia. – xRuhRohx

+0

@xRuhRohx Zaktualizowałem moją odpowiedź. –

+0

Użyłem kreatora do skonfigurowania połączenia z bazą danych, więc jak zmienić ciąg połączenia w czasie wykonywania? – xRuhRohx

2

Sposób zrobiłbym to byłoby:

  1. Wybierz Add New Data Source . . . z okna źródła danych w Visual Studio
  2. Wybierz Database z wyświetlonej listy, a następnie kliknij obok
  3. kliknij przycisk Dalej
  4. W Choose your data connection stronie kreatora, kliknij New connection
  5. Wybierz Microsoft Access Database File z pola listy i kliknij przycisk Dalej
  6. Wybierz kopię pliku bazy danych, która nie jest w katalogu i wprowadź dowolne dane logowania
  7. Kliknij OK
  8. Teraz Visual Studio poprosi:

    Wybrany połączenie wykorzystuje lokalny plik danych, który nie znajduje się w bieżącym projekcie . Czy chcesz skopiować plik do projektu i i zmodyfikować połączenie?

    Po skopiowaniu pliku danych do projektu zostanie on skopiowany do katalogu wyjściowego projektu przy każdym uruchomieniu aplikacji. Naciśnij F1, aby uzyskać informacje na temat kontrolowania tego zachowania za pomocą .

Kliknij "Tak", a program Visual Studio doda bazę danych do projektu i utworzy ciąg połączenia wskazujący skopiowaną bazę danych.

  1. Teraz prawdopodobnie będziesz chciał zapisać ciąg połączenia w aplikacji.Config, aby nie trzeba było go odbudowywać za każdym razem, gdy chcesz korzystać z bazy danych. Najprawdopodobniej uratuje to ciąg połączenia, który używa |DataDirectory|. Zmodyfikuj zawartość tej strony według własnego uznania.
  2. Przejdź przez pozostałą część kreatora i skonfiguruj bazę danych według potrzeb.

Kreator powinien skonfigurować ciąg połączenia i informacje o budowie, tak aby aplikacja działała bez względu na to, gdzie ją bierzesz.

EDIT - My ciąg połączenia, jak to jest zapisane w app.config wygląda

<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> 

mam również plik bazy danych Build Action ustawiona na „Kopiuj zawsze”.

+0

Problem, który napotykam, gdy zostawiam go jako | DataDirectory | tworzy folder wewnątrz folderu Lokalny w AppData iz jakiegoś powodu nie kopiuje do niego bazy danych. Zawsze mam błąd. – xRuhRohx

+0

Tak dzieje się po zainstalowaniu i uruchomieniu ... C: \ Users \ Neil \ AppData \ Local \ Apps \ 2.0 \ Data \ KBBE6L8Y.4H8 \ 2X1QXHV5.A2H \ gulb..tion_20d7bfc1bd30efa8_0001.0000_dbc5cc6b3df538bc \ Data \ Resources \ TML.accdb "nie jest prawidłową ścieżką. Upewnij się, że nazwa ścieżki jest zapisana poprawnie i że jesteś podłączony do serwera, na którym znajduje się plik. – xRuhRohx

+0

@xRuhRohx, spójrz na edycję i sprawdź, czy to pomaga. Ta aplikacja uzyskuje dostęp do danych w porządku, ponieważ jest skonfigurowana teraz. Mam nadzieję że to pomoże. –

Powiązane problemy