background image

 

 

ITA-101 Bazy Danych 

Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski 

Moduł 13 

Wersja 1.0 

Budowa interfejsu 

Spis treści 

Budowa interfejsu ............................................................................................................................... 1 

Informacje o module ........................................................................................................................... 2 

Przygotowanie teoretyczne ................................................................................................................. 3 

Przykładowy problem ................................................................................................................. 3 

Podstawy teoretyczne ................................................................................................................. 3 

Przykładowe rozwiązanie ............................................................................................................ 5 

Porady praktyczne ...................................................................................................................... 8 

Uwagi dla studenta ..................................................................................................................... 9 

Dodatkowe źródła informacji ...................................................................................................... 9 

Laboratorium podstawowe ............................................................................................................... 11 

Problem 1 (czas realizacji 45 minut) .......................................................................................... 11 

Laboratorium rozszerzone ................................................................................................................ 16 

Zadanie 1 (czas realizacji 90 min) .............................................................................................. 16 

 

 

background image

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 

 

background image

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. 

background image

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 

background image

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. 

background image

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 

background image

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. 

background image

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. 

background image

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 

background image

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. 

 

 

 

background image

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 

background image

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. 

background image

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 

background image

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 

background image

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 

 

 

 

background image

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