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ć:
- Należy do projektu dodać nowy plik SQL Server Database (.mdf), np. Database.mdf.
- 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…".
- Powinno pojawić się okienko "Modify Connection", w którym wybieramy opcję "Change…" z grupy "data source".
- W otwartym okienku "Change Data Source", wybieramy "Microsoft SQL Server" i klikamy OK.
- 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)!
- 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").
- Otworzy się okienko programu i przyciskiem Next/Dalej należy przeklikać aż do uzyskania następującego widoku:
- 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ę.
- W ten o to prosty sposób, wygenerowaliśmy tabele w naszym własnym pliku bazy danych.
- 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:
Prześlij komentarz