czwartek, 13 marca 2008

Sposób na umieszczenie bazki ASPNETDB.mdf w naszym własnym pliku bazy danych

Kolejny arytkuł z serii "ASP.NET - zapiski lamera programisty".

Co zrobić, gdy chcemy skorzystać z dobrodziejstw kontrolek Login ale chcemy całą bazę danych aplikacji trzymać w jednym pliku, zamiast w dwóch plikach: ASPNETDB.mdf i jakimś naszym pliku .mdf? Otóż wystarczy wygenerować za pomocą aspnet_regsql.exe tabele w naszym pliku bazy danych. Aby to zrobić:

  1. Należy do projektu dodać nowy plik SQL Server Database (.mdf), np. Database.mdf.

    ->

  2. Następnie, w Server Explorer wybrać nowo dodaną bazę danych, kliknąć prawym przyciskiem myszki i przejść do opcji "Modify Connection…". Zanim to zrobicie, sprawdźcie czy Visual Studio nie nawiązał połączenia z bazą danych, jeśli tak, to wybierzcie najpierw "Close Connection" i dopiero potem "Modify Connection…".

  3. Powinno pojawić się okienko "Modify Connection", w którym wybieramy opcję "Change…" z grupy "data source".

  4. W otwartym okienku "Change Data Source", wybieramy "Microsoft SQL Server" i klikamy OK.

  5. Po tej operacji powinniśmy wrócić do okienka "Modify Connection", które tym razem będzie wyglądać trochę inaczej.


    W polu "Server name" musimy wprowadzić nazwę komputera oraz dodać string "\SQLEXPRESS", w moim przypadku wygląda to tak: "DZAK-PC\SQLEXPRESS". Zamiast nazwy komputera, możemy także wpisać kropkę i wtedy "Server name" będzie miał postać: ".\SQLEXPRESS".

    Następnie ustawiamy logowanie do serwera sql, jeśli ustawialiście jakieś hasła, to zmieńcie opcje na "Use SQL Server Authentication" i podajcie login i hasło, jeśli natomiast instalowaliście SQL Server razem z Visualem, zostawcie opcję "Use Windows Authentication".

    Ostatnią zmianą jest wskazanie bazy danych, w tym celu zmieniamy ustawienie na "Attach a database file" i za pomocą "Browse…" wskazujemy plik naszej bazy danych w projekcie. (Dla pewności możemy sprawdzić połączenie "Test Connection".)

    W przypadku gdyby Visual Studio robił problemy, sprawdź czy nie masz przypadkiem Windows Vista i jeśli tak, to czy uruchomiłeś Visual-a jako administrator (jak uruchamiać Visual-a jako administrator)!

  6. Po tej operacji nasza baza zostanie przeniesiona do katalogów SQL Servera. Aby móc ją wypełnić tabelami, potrzebujemy jeszcze tylko skorzystania z programu aspnet_regsql.exe.

    Program ten znajdziemy w katalogu: "C:\Windows\Microsoft.NET\Framework\v2.0.50727". Jeśli mamy Viste, musimy zrobić to samo, co dla Visual-a, czyli uruchomić go jako administrator ("Run as administrator").

  7. Otworzy się okienko programu i przyciskiem Next/Dalej należy przeklikać aż do uzyskania następującego widoku:

  8. W otrzymanym okienku w polu "Server" wstawiamy albo nazwę swojego komputera i "\SQLEXPRESS" lub samo ".\SQLEXPRESS". Na liście rozwijanej w polu "Database" powinniśmy móc odnaleźć naszą bazę danych (Database.mdf). Wybieramy ją, klikamy dwukrotnie dalej i po wygenerowaniu tabel w bazie danych klikamy Finish, aby zamknąć aplikację.
  9. W ten o to prosty sposób, wygenerowaliśmy tabele w naszym własnym pliku bazy danych.

  10. Ostatnią rzeczą, która musimy zrobić jest wskazanie Visual-owi aby korzystał z naszej bazy danych, zamiast szukać/generować ASPNETDB.mdf. W tym celu musimy zmodyfikować wpis "LocalSqlServer" dla connection stringa w pliku Web.config. Należy dodać następujący wpis:

<connectionStrings>
<
remove name="LocalSqlServer" />
<
add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\(twoja ścieżka do bazy danych)\App_Data\Database.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</
connectionStrings>

Tak przetworzona baza danych, pozwala na dodanie naszych własnych tabel oraz na podłączenie kontrolek "Login", które będą wykorzystywały wygenerowane tabele.

Brak komentarzy: