ITA-101 Bazy Danych
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
Wersja 1.0
Budowa interfejsu
Spis treści
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 2/16
Informacje o module
Opis modułu
W module tym napiszemy aplikację , która będzie wyciągała informacje z
bazy danych Prace Dyplomowe. Zostanie pokazane jak za pomocą Visual
Studio utworzyd bazę danych, jak połączyd się z bazą danych w jaki sposób
wprowadzad dane. Następnie stworzymy aplikacje Windows, która będzie
korzystała z tych danych.
Cel modułu
Celem modułu jest zapoznanie czytelnika słuchacza z podstawami
programowania w Visual Studio 2008 w takim stopniu, żeby potrafił
samodzielnie stworzyd aplikację dostępową do danych zgromadzonych w
bazie danych.
Uzyskane kompetencje
Po zrealizowaniu modułu będziesz:
potrafił samodzielnie stworzyd prostą aplikację dostępu do danych
potrafił stworzyd bazę danych za pomocą MS Visual Studio 2008
potrafił nawiązad połączenie z bazą danych MS SQL Server 2008
umiał poruszad się po Microsoft Visual Studio 2008
wiedział co to jest ADO.NET
Wymagania wstępne
Przed przystąpieniem do pracy z tym modułem powinieneś:
Potrafid zaprojektowad bazę danych.
Potrafid zaimplementowad bazę danych wraz z jej obiektami.
Potrafid tworzyd proste procedury składowane i wyzwalacze.
Potrafił definiowad użytkowników i nadawad im uprawnienia.
Mapa zależności modułu
Zgodnie z mapą zależności przedstawioną na Rys. 1, przed przystąpieniem
do realizacji tego modułu należy zapoznad się z materiałem zawartym
w modułach: 1, 3, 9, 10 oraz 11.
Moduł 13
Dodatek
Moduł 1
Moduł 2
Moduł 3
Moduł 4
Moduł 5
Moduł 6
Moduł 7
Moduł 8
Moduł 9
Moduł 10
Moduł 11
Moduł 12
Rys. 1 Mapa zależności modułu
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 3/16
Przygotowanie teoretyczne
Przykładowy problem
Ostatnim etapem wytwarzania projektu bazy danych wraz z dostępem do niej poprzez aplikacje jest
konstrukcja interfejsu użytkownika. Istnieje wiele metod i narzędzi do tworzenia interfejsu
użytkownika. Począwszy od rozwiązao prostszych a co za tym idzie przeważnie nie
wykorzystujących dobrodziejstw jakie daje nam baza danych postawiona na SQL Server 2008 do
rozwiązao profesjonalnych wykorzystujących możliwości serwera bazodanowego. Jeżeli baza
danych została profesjonalnie zaprojektowana, zaimplementowana i oprogramowana to
wykorzystując na przykład Microsoft Visual Studio 2008 jesteśmy w stanie w łatwy sposób stworzyd
aplikację dostępową o wysokim poziomie bezpieczeostwa poprzez wykorzystanie wszystkich
zaawansowanych mechanizmów bezpieczeostwa SQL Server 2008. Aplikacja taka będzie odporna
na typowe zagrożenia typu SQL Injection gdyż zapytania zostaną ukryte w procedurach
składowanych a zatem z punktu widzenia hakera będzie on widział, że po sieci przesyłane są tylko
pewne funkcje bez parametrów lub z parametrami. Należy podkreślid fakt, iż w celu stworzenia
bezpiecznej bazy danych i aplikacji dostępowej wymagana jest ciągła współpraca różnych członków
zespołu projektowego począwszy od projektanta bazy danych poprzez administratora, programistę
poprzez projektanta interfejsu użytkownika a skooczywszy na projektanci i programiście aplikacji.
Podstawy teoretyczne
Rzadko wprowadza się dane do bazy za pomocą SQL Server 2008. Zwykle daje się możliwośd
wprowadzania danych użytkownikom za pomocą aplikacji dostępowej do bazy danych. Można
również importowad z różnych źródeł zewnętrznych lub tworzyd dane za pomocą skryptów SQL, co
zostało przedstawione we wcześniejszych rozdziałach.
Skoncentrujmy się na tworzeniu aplikacji Windows, która komunikuje się z SQL Server 2008
korzystając z ADO.NET.
Co to jest ADO.NET
ADO.NET zapewnia jednolity dostęp zarówno do źródeł danych, takich jak na przykład SQL Server
2008, jak również źródeł danych publikowanych za pomocą OLE DB lub XML. Należy zauważyd iż
aplikacje, które współdzielą dostęp do danych mogą korzystad właśnie z ADO.NET w celu łączenia
się ze źródłami, pobierania danych oraz manipulowania nimi.
Siłą ADO.NET jest wyraźne oddzielenie dostępu do danych od manipulacji danymi na niezależnie
odseparowane składniki. Składniki te mogą byd wykorzystywane razem lub osobno. ADO.NET
zawiera dostarczycieli danych .NET Framework, za pomocą których dokonuje się połączenie z bazą
danych, wykonuje się polecenia i odbiera wyniki. Wyniki te mogą po pierwsze byd przetwarzane
bezpośrednio, a po drugie mogą trafiad do zestawów danych, tzw. obiektów
DataSet
, które
znajdują się w bibliotekach ADO.NET. W takiej sytuacji dane są udostępniane użytkownikom w
dowolny sposób. Bardzo ważne jest to, że dane z obiektów
DataSet
bibliotek ADO.NET można
wykorzystywad niezależnie od dostawców .NET do zarządzania lokalnymi danymi oraz w aplikacjach
czytających dane w formacie XML.
Klasa ADO.NET znajduje się w podzespole System.Data.dll i jest zintegrowana z klasami XML
znajdującymi się w podzespole System.XML.dll. W momencie kompilacji kodu odwołującego się do
przestrzeni nazw
System.Data
należy wskazad zarówno System.Data.dll, jak również
System.Xml.dll.
ADO.NET zapewnia środowisku .NET Framework sposób dostępu do danych oraz to co jest bardzo
ważne – możliwośd programowej manipulacji tymi danymi. Manipulacja oczywiście może odbywad
się również na innych źródłach danych, na przykład na źródle XML.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 4/16
Dostęp do danych z użyciem ADO.NET
Tworząc aplikacje korzystające z ADO.NET można spotkad się z różnymi wymaganiami dotyczącymi
pracy z danymi. W pewnych sytuacjach wystarczy wyświetlenie danych w formularzu, natomiast w
innych trzeba opracowad na przykład sposób wymiany informacji z inną firmą.
Niezależnie od tego, co zamierzamy robid z danymi, warto poznad kilka podstawowych zasad
dotyczących obsługi danych w ADO.NET. Byd może nigdy nie będziemy musieli znad szczegółów
obsługi danych, natomiast kluczową sprawą jest zrozumienie architektury danych w ADO.NET,
poznanie podstawowych komponentów oraz sposobu ich współpracy.
ADO.NET a uwierzytelnianie otwartego połączenia z bazą danych
W tradycyjnych aplikacjach typu klient/serwer, komponenty ustanawiały połączenie z bazą danych i
utrzymywały to połączenie przez cały czas działania aplikacji. Z kilku względów metoda ta nie jest
zbyt praktyczna:
Otwarte połączenie z bazą danych zajmuje wiele zasobów systemowych, które mogłyby byd
wykorzystane do innych celów. W wyniku utrzymywania stałego połączenia z bazą danych
zmniejsza się liczba równocześnie utrzymywanych połączeo. Obciążenie spowodowane
utrzymywaniem otwartych połączeo zmniejsza ogólną wydajnośd aplikacji.
Bardzo trudne jest skalowanie aplikacji, która wymaga otwartego połączenia z bazą danych.
Należy pamiętad o tym, że aplikacja, która nie jest w pełni skalowalna, może na przykład
dobrze działad z czterema użytkownikami, ale w żaden sposób nie poradzi sobie z setką
równoczesnych użytkowników. Wymóg łatwej skalowalności dotyczy szczególnie aplikacji
internetowych ASP.NET, gdyż obciążenie witryny internetowej może w bardzo niewielkim
czasie zwiększyd się nawet o kilka rzędów wielkości.
W aplikacjach internetowych ASP.NET komponenty nie są ze sobą połączone. W momencie
kiedy serwer zakooczy przetwarzanie i transmisję strony w odpowiedzi na żądanie
przeglądarki, pomiędzy serwerem a przeglądarką nie jest utrzymywane żadne połączenie.
Połączenie jest wznawiane w chwili kolejnego żądania, a zatem utrzymywanie otwartego
połączenia z bazą w żaden sposób się nie opłaca, ponieważ nie jesteśmy w stanie
przewidzied, czy klient będzie jeszcze potrzebował dostępu do danych.
Model, którego działanie oparte jest na utrzymywaniu otwartych połączeo ze źródłami
danych może przyczynid się do tego, że wymiana danych będzie skomplikowana i
niepraktyczna. Jeśli dwa komponenty muszą mied dostęp do tych samych danych, obydwa
muszą utrzymywad połączenie ze źródłem danych lub musi byd dostępny jakiś inny sposób
przekazywania danych.
Między innymi z tych czterech powodów dostęp do danych w ADO.NET został zaprojektowany w
taki sposób aby przede wszystkim oszczędnie korzystad z połączeo. A zatem aplikacje utrzymują
połączenie z bazą danych tylko na czas odczytywania lub zapisywania danych. Ponieważ bazy
danych nie muszą utrzymywad nieaktywnych połączeo, mogą obsłużyd znacznie więcej
użytkowników.
Współpraca z bazami danych za pomocą obiektów Command
Jednym z najpowszechniejszych zadao dostępu do danych jest odczytanie danych z bazy, a
następnie wykonanie na nich jakichś operacji. W czasach wielkiej liczby informacji bardzo często
dochodzi do sytuacji, że aplikacja musi przetworzyd nie jeden rekord, lecz ich cały zbiór. W wielu
przypadkach przetwarzane dane pochodzą nie z jednej, lecz z wielu tabel.
Rekordy, które czytane są przez aplikację traktowane są jako grupa. Na przykład aplikacja może
zezwolid użytkownikowi na przejrzenie listy wszystkich autorów o nazwisku Kowalski, a następnie
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 5/16
sprawdzid wszystkie książki napisane przez jednego Kowalskiego, potem przez kolejnego
Kowalskiego i tak dalej.
Takie każdorazowe odwoływanie się do bazy danych, gdy aplikacja potrzebuje kolejnego rekordu
do przetwarzania jest niepraktyczne. W myśl tego co zostało powiedziane wcześniej, takie
podejście może zniszczyd zaletę utrzymywania małej liczby otwartych połączeo. Pewnym
rozwiązaniem jest tymczasowe przechowywanie odczytanych z bazy rekordów i praca na takim
tymczasowym zbiorze.
Na tym właśnie polega idea obiektu
DataSet
.
DataSet
jest swego rodzaju buforem, w którym
znajdują się przechowywane rekordy pobrane z bazy danych. Obiekt ten działa podobnie do
wirtualnej składnicy danych, a zatem zawiera jedną lub więcej tabel. Tabele te są fragmentami
tabel rzeczywistej bazy danych. Ponadto obiekt
DataSet
posiada informacje o relacjach pomiędzy
tymi tabelami oraz o ograniczeniach wartości danych, jakie mogą się znaleźd w tych tabelach.
Należy pamiętad że dane przechowywane w
DataSet
nie są pełnym odzwierciedleniem fizycznej
tabeli. Są one niewielkim podzbiorem danych znajdujących się w bazie danych. Zaletą jednak jest
to, że można z nimi pracowad w sposób podobny do pracy z danymi z rzeczywistej bazy danych.
Czasem zdarza się że aplikacja musi zapisad dane w bazie danych. Dane te można zmieniad w
DataSet
, a następnie przesład je do podstawowej bazy danych.
Dane przechowywane w formacie XML
Wszystkie dane są przesyłane ze składnicy danych do
DataSet
, a następnie z
DataSet
do innych
komponentów. ADO.NET do przesyłania danych wykorzystuje format XML. Pliki XML mogą byd
używane jak każde inne źródło danych. Ich zawartośd można łatwo wczytad do obiektu
DataSet
.
XML jest podstawowym formatem danych w ADO.NET. API w ADO.NET automatycznie tworzą pliki
lub strumienie XML (na podstawie
DataSet
) i wysyłają je do innego komponentu. Następnie
komponent taki może wywoład inne API, by ponownie wczytad XML do obiektu
DataSet
.
Oparcie protokołów wymiany danych na XML przynosi wiele korzyści:
XML jest standardem przemysłowym. Zatem komponenty obsługi danych w jednej aplikacji
mogą wymieniad dane z innymi komponentami w innej aplikacji. Warunkiem jest obsługa
przez aplikację formatu XML.
XML jest formatem tekstowym. Danych w postaci XML nie zawiera informacji binarnych, a
zatem można je przesyład za pomocą dowolnego protokołu – na przykład HTTP.
Przykładowe rozwiązanie
Tworzenie bazy danych z poziomu Microsoft Visual Studio 2008
Bazę danych do której będziemy tworzyli aplikacje dostępową można stworzyd na dwa sposoby.
Sposób pierwszy polega na definiowaniu bezy danych wraz z jej obiektami z poziomu SQL Server
2008. Sposób ten poznałeś w poprzednich modułach. Sposób drugi polega na stworzeniu bazy
danych z poziomu Microsoft Visual Studio 2008.
Definicja bazy danych Dziekanat
Aby stworzyd bazę danych za pomocą Visual C# w pierwszym kroku uruchamiamy Microsoft Visual
C# 2008. Następnie w oknie
Database Explorer
klikamy prawym przyciskiem myszy na
Data
Connections
i wybieramy
Add Connection
co pokazano na Rysunku 2.
W obrębie okna definicji połączenia z bazą danych możemy ustawid źródło danych oraz wybrad plik
danych istniejący lub stworzyd nową bazę. W kolejnym etapie określamy sposób autoryzacji.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 6/16
Rys. 2 Okno definicji połączenia z bazą danych
Stwórzmy testową bazę danych Dziekanat. Wynik pokazano na Rysunku 2.
Rys. 3 Testowa baza danych dziekanat.
Definicja tabeli, diagramu, widoku
W kolejnym kroku należy zdefiniowad podstawowe obiekty bazy danych – tabele i widoki. W tym
celu odpowiednio klikamy prawym przyciskiem myszy na katalogu
Tables
i wybieramy
Add New
Table
. Tworzenie przykładowej tabeli
Student
pokazano na Rysunku 4.
Rys. 4 Przykładowa tabela Student
W analogiczny sposób definiujemy pozostałe tabele w bazie danych. Następnie uzupełniamy bazę
danych przykładowymi danymi. Ostatnim krokiem jest stworzenie przykładowego widoku. W tym
celu klikamy prawym przyciskiem myszy na zakładce
Views
i wybieramy
Add New View
. Następnie
z okna
Add Table
wybieramy tabele, które będziemy używali w definiowanym widoku. Kolejny
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 7/16
krok to wybór kolumn, które mają zostad wstawione do definiowanego widoku. Na Rysunku 6
pokazano przykładowy widok na jakie przedmioty zapisani są studenci.
Rys. 5 Definicja widoku na jakie przedmioty zapisani są studenci
Tworzenie zestawu danych w Microsoft Visual Studio 2008
Stwórzmy aplikację Dziekanat do zestawu danych przygotowanych powyżej. Aby utworzyd zestaw
danych w pasku
Data Sources
klikamy odsyłacz
Add New Data Sources
. Pierwszy ekran
konfiguracji źródła danych umożliwia wybór typu źródła danych, które chcemy połączyd.
Wybieramy
Dziekanat.mdf
co pokazano na Rysunku 6.
Rys. 6 Wybór źródła danych
Następnie wybieramy wszystkie obiekty z bazy danych, które chcemy żeby znalazły się w zestawie
danych. Zatem wybieramy wszystkie tabele i widok. W wyniku powyższych operacji projekt
powinien wyglądad mniej więcej tak jak na Rysunku 7.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 8/16
Rys. 7 Projekt aplikacji Dziekanat
Następnie w panelu
Data Sources
wybieramy węzeł Przedmiot i klikamy na wskazującą w dół
strzałkę rozwijając listę. Wybieramy prezentację danych jako widok siatki danych. Spowoduje to
pobranie do formularza wszystkich pól z zestawu danych w wielu wierszach w postaci siatki
komórek co pokazano na Rysunku 8.
Rys. 8 Stworzony formularz
W celu uruchomienia aplikacji należy wybrad przycisk
F5
. Wynik skompilowanej aplikacji
przedstawia Rysunek 9.
Rys. 9 Wynik działania aplikacji
Porady praktyczne
Jeśli korzystamy z obiektów
Command
z właściwością
CommandType
ustawioną na
Text
i
przekazujemy w nich do bazy danych informacje otrzymane od klienta, informacje te należy
zawsze poddad procesowi walidacji. Niektórzy użytkownicy mogą próbowad wysład
zmodyfikowane lub dodatkowe polecenia SQL w celu zdobycia dostępu do danych lub
uszkodzenia bazy danych. Zatem bardzo ważne jest, żeby zawsze przed przekazaniem do
bazy wprowadzonych przez użytkownika danych przeprowadzid proces walidacji, czy dane te
są poprawne. Najlepszą praktyką jest stosowanie procedur składowanych.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 9/16
Należy pamiętad, że
DataSet
jest tylko kontenerem przechowującym dane. Aby odczytad i
zapisad dane z bazy należy użyd obiektu
DataAdapter
.
DataAdapter
zawiera jeden lub
więcej obiektów
Command
używanych do wypełnienia pojedynczej tabeli obiektu
DataSet
.
Obiekt ten zawiera cztery obiekty
Command
(do pobierania, dopisywania, uaktualniania i
usuwania rekordów).
Konfiguracja aplikacji jest przechowywana w pliku XML o takiej samej nazwie jak plik
wykonywalny .exe.
W wyniku skonfigurowania zestawu danych został utworzony plik .xds czyli dokument
schematu XML definiujący wewnętrzna strukturę tego zestawu. Pamiętaj, ze zestaw danych
jest przechowywany w pamięci reprezentacja jednej lub wielu tabel z bazy danych. ADO.NET
będzie korzystał z tego pliku schematu przy współpracy z aplikacją.
Przeważnie w projektach mamy jedna bazę danych, ale nie jest niczym niezwykłym potrzeba
komunikowania się z dwoma lub więcej bazami danych. Z tego powodu połączenia z bazami
danych ułożone są w drzewiastej strukturze, w której każda baza danych jest
reprezentowana przez osobny węzeł.
Dopóki nie zapiszemy projektu znajduje się on w tymczasowym folderze. Po zapisaniu
wszystkich plików projektu, baza danych zostanie zapisana razem z innymi plikami projektu.
Nie wszystkie kontrolki Windows można podłączyd do źródeł danych. Te które można
posiadają właściwości
DataBindings
.
Podczas przeciągania zestawu danych do obszaru projektowania do znajdującego się niżej
szarego panelu zostały dodane nowe pozycje. Dolna częśd obszaru projektowania nazywamy
panelem komponentów. Visual Studio umieszcza w nim kontrolki, które nie są graficzne.
W Visual Studio istnieje możliwośd zastosowania metody
Smart Defaults
. Polega ona na
sprawdzeniu tabeli z zestawu danych czy oprócz ID lub klucza głównego znajduje się jakaś
kolumna typu tekstowego. Jeżeli tak to kolumna ta jest podłączana do kontrolki.
Gdy zajrzysz do panelu
Properties
obiektu tabela zobaczysz że w Visual Studio
automatycznie są wygenerowane cztery typy instrukcji:
SELECT, INSERT, DELATE,
UPDATE
. Są to instrukcje, które umożliwiają przygotowanie w pełni działającej aplikacji bez
pisania kodu źródłowego
Uwagi dla studenta
Jesteś przygotowany do realizacji laboratorium jeśli:
rozumiesz co to jest ADO.NET
rozumiesz na czym polega dostęp do danych poprzez ADO.NET
potrafisz stworzyd prosta bazę danych korzystając z Visual Studio 2008
potrafisz stworzyd prosty formularz obiektu typu tabela
Pamiętaj o zapoznaniu się z uwagami i poradami zawartymi w tym module. Upewnij się, że
rozumiesz omawiane w nich zagadnienia. Jeśli masz trudności ze zrozumieniem tematu zawartego
w uwagach, przeczytaj ponownie informacje z tego rozdziału i zajrzyj do notatek z wykładów.
Dodatkowe źródła informacji
1. Patrice Pelland, Projektuj sam. Microsoft Visual C# 2005.
W książce autor w prosty i przejrzysty sposób prezentuje w jak należy poruszad się
po Microsoft Visual Studio 2005, jak tworzyd proste projekty. Pozycja szczególnie
polecana dla osób początkujących.
2. Kalen Delaney, Microsoft SQL Server 2005: Rozwiązania praktyczne krok po kroku, Microsoft
Press, 2006
W książce autor w przystępny i zrozumiały sposób przedstawia podstawowe
mechanizmy związane z bezpieczeostwem bazy danych przy założeniu dostępu do
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 10/16
niej poprzez aplikację kliencką pisaną w Microsoft Visual Studio. Pozycja polecana
zarówno dla osób początkujących jak i pragnących poszerzyd swoje wiadomości z
tej tematyki
3.
Nick Randolph, David Gardner,
Professional Visual Studio 2008.
W książce autor w prosty i przejrzysty sposób zaawansowane mechanizmy
narzędzia Microsoft Visual Studio 2008. Prezentuje w jak należy poruszad się po
Microsoft Visual Studio 2008, jak tworzyd proste i zaawansowane projekty.
Znajdziesz w niej rozszerzony opis funkcjonowania ADO.NET. Pozycja szczególnie
polecana dla osób zaawansowanych chcących poszerzyd swoją wiedzę z zakresu
programowania aplikacji klienckich.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 11/16
Laboratorium podstawowe
Problem 1 (czas realizacji 45 minut)
Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że
firma National Insurance zarządzająca systemem prac dyplomowych na twoim wydziale planuje
rozszerzenie systemu dodając nową funkcjonalnośd związaną z wyszukiwaniem informacji na jakie
przedmioty chodzili studenci podczas pięciu lat studiów. Zadanie, jakie przed Tobą stoi, to
zmodyfikowanie struktury fizycznej bazy danych oraz stworzenie modułu aplikacyjnego.
Zadanie
Tok postępowania
1. Tworzenie
projektu
Uruchom Microsoft Visual Studio 2008. Start ->Programy ->Microsoft
Visual C# 2008
Z menu głównego wybierz File -> New Project -> Windows Form
Application.
Nadaj nazwę dla projektu
Dziekanat-aplikacja
2. Tworzenie
bazy danych
W obrębie okna Database Explorer wybieramy Data Connections.
Kliknij prawym przyciskiem myszy na Data Connections i wybierz Add
Connection.
W polu Data Sources ustaw Microsoft SQL Server database File
(SqlClient). (Rysunek 10)
W polu Database file name (new or existing) wpisz nazwę bazy danych
Dziekanat
(Rysunek 10)
Rys. 10 Definicja połączenia do bazy danych
3. Definicja tabel
W panelu Database Explorer prawym przyciskiem myszy kliknij ikonę
folderu Tables i wybierz Add New Table.
Definiujemy kolumny tabeli
Student
(Rysunek 11) i zapisujemy pod
nazwą Student
Rys. 11 Definicja tabeli Student
Definiujemy kolumny tabeli
Przedmiot
(Rysunek 12) i zapisujemy pod
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 12/16
nazwą Przedmiot.
Rys. 12 Definicja tabeli Przedmiot
Definiujemy kolumny tabeli
Student_Przedmiot
(Rysunek 13) i
zapisujemy pod nazwą Student_Przedmiot
Rys. 13 Definicja tabeli Student_Przedmiot
4. Definicja
Diagramu
Przejdź do panelu Database Explorer i prawym przyciskiem myszy kliknij
węzeł Database Diagram i wybierz Add New Diagram.
Wybierz wszystkie tabele i kliknij Add.
Kliknij przycisk Close, aby poinformowad Visual Studio, że już masz
wszystkie potrzebne tabele
Połącz tabele związkami. Wynik pokazano na Rysunku 14.
Rys. 14. Diagram bazy danych Dziekanat
5. Definicja
widoku
Przejdź do panelu Database Explorer i prawym przyciskiem myszy kliknij
węzeł Views i wybierz Add New View.
Wybierz tabele, które potrzebne są do twojego widoku i kliknij Add.
Kliknij przycisk Close, aby poinformowad Visual Studio, że już masz
wszystkie potrzebne tabele.
Zaznacz kolumny, które chcesz żeby weszły do definiowanego widoku.
Wynik pokazano na Rysunku 15.
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 13/16
Rys. 15. Definicja widoku
6. Tworzenie
zestawu danych
Przejdź do panelu Data Sources i kliknij odsyłacz Add New Data
Sources.
Uruchomiłeś kreator konfiguracji źródeł danych.
Wybierz Database a następnie kliknij przycisk Next
Wybieramy bazę danych
Dziekanat.mdf
i klikamy przycisk Next
Zaznaczamy opcję Yes, save the connection as.
Wybieramy wszystkie tabele i widoki z bazy danych. Następnie klikamy
Finish.
W Data Sources pojawiło się zdefiniowane połączenie co pokazano na
Rysunku 16.
Rys. 16 Zdefiniowane połączenie z bazą danych Dziekanat
7. Interfejs
użytkownika
Przejdź do panelu Toolbox i wybierz a następnie przeciągnij na
Form1
obiekt Label
W oknie właściwości w polu Text wpisz Mini aplikacja obsługi
dziekanatu.
Przejdź do panelu Toolbox i wybierz a następnie przeciągnij na
Form1
obiekt TabCotrol
W oknie właściwości w polu Text dla każdej zakładki wpisz: Studenci,
Przedmioty i Na jakie przedmioty uczęszczają studenci. (Rysunek 17)
Rys. 17 Dodane obiekty label i TabControl
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 14/16
Przejdź do panelu Data Sources i rozwio zakładkę Student
Kliknij na wskazującą w dół strzałkę rozwijając listę.
Wybierz prezentację danych jako szczegółową Details i przeciągnij na
Form1
na zakładkę Studenci (Rysunek 18)
Rys. 18 Zakładka Studenci
Przejdź do panelu Data Sources i rozwio zakładkę Przedmiot
Kliknij na wskazującą w dół strzałkę rozwijając listę.
Wybierz prezentację danych jako szczegółową Details i przeciągnij na
Form1
na zakładkę Przedmiot (Rysunek 19)
Rys. 19 Zakładka Przedmioty
Przejdź do panelu Data Sources i rozwio zakładkę na jakie przedmioty
jest zapisany student
Kliknij na wskazującą w dół strzałkę rozwijając listę.
Wybierz prezentację danych jako DataGridView i przeciągnij na
Form1
na zakładkę Na jakie przedmioty uczęszczają studenci (Rysunek 20)
Rys. 20 Zakładka Na jakie przedmioty uczęszczają studenci
Uruchom aplikację wybierając przycisk F5. Wynik skompilowanej
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 15/16
aplikacji przedstawia Rysunek 21
Rys. 21 Wynik działania aplikacji
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 13
ITA-101 Bazy Danych
Budowa interfejsu
Strona 16/16
Laboratorium rozszerzone
Zadanie 1 (czas realizacji 90 min)
Jesteś programistą w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że
firma zarządzająca bazą AdventureWorks planuje rozszerzenie i modernizacje systemu w celu
spełnienia pewnych standardów. W związku z modernizacją systemu bazodanowego
najprawdopodobniej ulegną zmianie pewne metody wybierania danych w celu zapewnienia
wyższego poziomu bezpieczeostwa. Dostaniesz dodatkowe procedury składowane i funkcje, które
będziesz musiał wykorzystad w nowym module aplikacji klienckiej.
Zadanie, jakie przed Toba stoi, to:
1. Podjęcie decyzji, jakie procedury składowane powinny zostad napisane dla nowego modułu
bazy danych oraz jak je użyd w aplikacji klienckiej.
2. Podjęcie decyzji jak ma wyglądad interfejs użytkownika