C # zamienia Twój
Kiedy uruchamiasz swój program, Visual
program na plik, oznaczona jako Debug. Czy to jakiś problem?
który możesz
Studio kopiuje wszystkie pliki do katalogu
uruchomić,
U : Nie. Debugowanie, przynajmniej w naszym
Moje DokumentyWisual Studio 2010\Projects\
zwany plikiem
przypadku, to uruchamianie aplikacji poprzez IDE.
wykonywalnym.
y ? Kontakty\Kontakty\bin\debug. Możesz nawet
Znajdziesz go Powiemy sobie więcej na jego temat w dalszej
f przejść do niego i uruchomić poprzez dwukrotne
tutaj, w folderze
części książki. Na chwilę obecną będzie to po prostu
kliknięcie pliku .exe program, który został
debug.
sposób na uruchamianie programów.
utworzony przez IDE.
(P : Nie widzę żadnego przycisku
Stop Debugging na moim pasku narzędzi.
O co chodzi?
n a n
P ro g ram .cs | | ^ _F rm 1 . __ | | K o n ta k ty .c sp ro j bin
U : Przycisk Stop Debugging znajduje się
U J s s L U
na specjalnym pasku narzędzi, który staje się
Forrn1.es Form 1.resx P r o p e r t ie s
widoczny dopiero po uruchomieniu programu.
Uruchom aplikację jeszcze raz i sprawdz,
To nie je s t btąd. Istnieją, dwa poziomy katalogów.
czy pasek się pojawił.
Wewnętrzny folder posiada właściwe pliki z kodem C# ,
56 Rozdziali,
Zwiększ wydajność za pomocą C#
Co zrobiliśmy do tej pory
Stworzyliśmy formularz i wstawiliśmy kontrolkę PictureBox, która w momencie
kliknięcia wyświetla okienko dialogowe z komunikatem. Kolejnym zadaniem będzie
dodanie wszystkich innych pól karty, takich jak nazwa kontaktu i numer telefonu.
Zdecydowaliśmy, że te informacje będziemy przechowywać w bazie danych. Visual
Studio może zarządzać bezpośrednim połączeniem z taką bazą danych, dzięki
czemu nie będziemy potrzebowali zaśmiecać kodu licznymi odwołaniami do niej
(co jest niewskazane). Jednak aby to wszystko prawidłowo działało, musimy stworzyć
naszą bazę w taki sposób, by kontrolki mogły się do niej odwoływać. Zamierzamy
więc przenieść się z obszaru obiektów wizualnych .NET bezpośrednio do sekcji
bazy danych.
Obiekty wizualne
.NET
Obiekty Pamięć Paczka
bazy bazy danych instalatora
SUECTf
" ó t e n i s INStjgTf
f
danych
fpo^niU?DATS| Obiekty wsparcia
M ET
diagramu baty
| Poieeenj*
danych
System
ObieVS
Musimy więc skupić
się na tym kroku:
Ten etap ma
stworzeniu bazy
na celu potączenie
danych i umieszczeniu
formularza z bazą
w niej pewnych
danych, na co nie
informacji.
jesteśm y na razie
gotowi. Po prostu
nie posiadamy
zrobiliśmy
je s z c z e b a z y ^
tej pory,..
danych.
Visual Studio może wygenerować kod
pozwalajacy na połączenie formularza i bazy
danych, ale ZANIM to będzie możliwe, musimy
tak^ bazę stworzyć.
jesteś tutaj % 57
Zachowaj to na pózniej
Potrzebujemy bazy danych
Upewnij się,
do przechowywania naszych informacji ____
że skończyłeś
debugować, zanim
Zanim dodamy do formularza resztę pól, musimy stworzyć bazę,
przejdziesz dalej.
z której będzie on korzystał. IDE może wygenerować znaczną
część kodu odpowiedzialnego za połączenie formularza i danych,
ale musimy wcześniej zdefiniować samą bazę.
O Dodaj nową bazę danych SQL do projektu.
W oknie Solution Explorer kliknij prawym przyciskiem myszy
Ten plik je st
naszą nową
projekt Kontakty i wybierz Add, a następnie New Item. Kliknij
bazą danych.
ikonę SQL Database, a jako nazwę wpisz ContactDB.sdf.
ContactPB.sdf
M d Item - Kontakty
j irateSed Teroptartes ^ Crfa.it
I Seardi instaligd Ttmjłtotts
: o 1
{ Visust C# Items | ." ł
lype:
/isusl C# items
Yisual C# ftems
a n n g u m g n n m n \'ml ^PP!lcat,on Manifest Fite
Wybierz oocie
Opcja Locai
\ Assembfy Information Fite Vtsuaf C# heros
Locol Database, / I
Database oznacza
1 Q Code Fite Visoaf C* ftems
w rzeczywistości
by utworzyć
1jJtP DatsSet Visua{ C# ftems plik bazy danych
plik SLQ Server
1 P I
SQL Server
* Debugger Vtsuafaef Visuaf C* ftems
Compact
Compact Edition,
Edition, który 1NL U N Q ta S Q tC fa * s ^ który zazwyczaj ma
l
rozszerzenie Sur.^
będzie zawierać ( ^ tocsS Dstsbaue j Ąisua* C# Stems
.. ........
Daje on możliwość
całą Twoją
j MDI Parent Form Visua( C# ftems
tatwego dodania
1 jg u
bazę danych.
i j Resources Ne Visoal C# ftems
bazy danych
| ż.gf*
Nadaj jej nazwę do projektu.
, % Service-based Database Visua&C#fteras
ContactDB.sdf.
1 !i " "%
|- j Settings Fite VisuaS C# ftems
Visuai G* ftems
| jjj TeXtFiiŹ
Visuat C* ftems
Q W oknie dialogowym Add New Item kliknij
Jeżeli nie używasz
przycisk Add.
edycji Express, możesz
Q Zamknij okno Data Source Configuration Wizard. zobaczyć S ew er
Explorer zamiast okna
Na tym etapie chcemy pominąć konfigurację zródła
Database Explorer.
danych, więc kliknij przycisk Cancel. Wrócimy tutaj,
jak tylko ustalimy strukturę naszej bazy danych.
Visual Studio 2010 Professional oraz Team
Q Oglądnij bazę danych w oknie Solution Explorer.
Foundation nie posiadają okna Database Explorer.
Przejdz do okna Solution Explorer, a zobaczysz, że baza
Zamiast tego mają okno Server Explorer, które
ContactDB została dodana do listy plików. Kliknij
potrafi zrobić dokładnie to samo, a oprócz tego
dwukrotnie ContactDB.sdf i popatrz na lewą stronę umożliwia przeglądanie danych w sieci.
ekranu. Toolbox został zastąpiony przez Database
Explorer.
58 Rozdziali,
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
IDE utworzyło bazę danych wizualne NET bazy danych bazy danych instalatora
1.NET
;\m a
Kiedy nakazałeś IDE dodać nową bazę SQL do projektu, IDE
W
ją utworzyło. Baza danych SQL to system, który przechowuje
dane w sposób zorganizowany i relacyjny. Dodatkowo IDE
udostępnia wszystkie narzędzia niezbędne do pracy z samą
bazą danych oraz przechowywanymi w niej informacjami.
Dane w bazie SQL przechowywane są w tabelach. Na bieżące
Jesteś tutaj
potrzeby wystarczy wyobrazić sobie, że baza to rodzaj arkusza
kalkulacyjnego. Organizuje on dane w ramach wierszy
i kolumn. Kolumny reprezentują ich kategorie, takie jak nazwa
kontaktu i numer telefonu, natomiast każdy rząd reprezentuje
jedną kartę kontaktową.
przechowuj*
_ dan- Zawiera ona
dda*kowo informacje o ich
i strukturze oraz kod SQL
\ Pmcny w dostępie do nich.
Twoje dane przechowywane
są w postaci kolumn
rządów, podobnie jak
w arkuszu.
s*tad owane
ŁQL jest swoim własnym językiem
SQL to skrót od Structured Query Language. Oznacza
język programowania pozwalający na dostęp do danych
Baza danych SQL znajduje się
zgromadzonych w bazie. Posiada on swoją własną składnię,
w tym pliku. Wkrótce zdefiniujemy
słowa kluczowe i strukturę. Kod SQL przyjmuje postać
tabele i dane dla niej, a wszystko
to znajdzie się wtaśnie w tym
instrukcji i zapytań, które umożliwiają dostęp do danych
miejscu.
i ich pobieranie. Baza danych może posiadać tak zwane
procedury składowane będące zestawem instrukcji
i zapytań SQL przechowywanych w niej i gotowych do
ContactPB.sdf
uruchomienia w każdej chwili. IDE generuje instrukcje SQL
i procedury składowane automatycznie, aby możliwy był
dostęp do danych z poziomu programu.
[Notka dziatu marketingu: Czy możemy wstawić
tutaj reklamę książki SQL. Kusz gtową!**?]
Jesteś tutaj % 59
Pamięć bazy danych ułatwia pracę
Tworzenie tabeli dla listy kontaktowej
Mamy już bazę danych. Potrzebujemy jeszcze zgromadzić w niej
informacje, ale muszą się one mieścić w tabelach, czyli strukturach
bazy używanych do przechowywania poszczególnych bitów danych.
Dla celów naszej aplikacji stwórzmy zatem tabelę People ,
aby w niej przechowywać wszystkie informacje kontaktowe. (P: Czy moiesz jeszcze raz powiedzieć,
co to jest kolumna?
Q Dodaj tabelę do bazy ContacłOB.
U : Kolumna to jedno pole w tabeli. A zatem
Kliknij prawym przyciskiem myszy w element Tables
w tabeli People możesz mieć kolumny FirstNome
w oknie Database Explorer i wybierz Create Table.
oraz LostNome, które będą oznaczały imię
Spowoduje to otwarcie okna, w którym możesz
i nazwisko osoby. Z kolumną jest także
zdefiniować nazwy kolumn tworzonej tabeli.
nierozerwalnie związany typ danych taki jak
String, Date czy też Bool.
(P: Do czego jest nam potrzebna kolumna
ContactID?
* lt ContactDB.sdf
0 : Umożliwia ona posiadanie unikalnego
identyfikatora przez każdy rekord w większości
tabel. Dlatego w przypadku przechowywania
listy kontaktów do poszczególnych osób
zdecydowaliśmy się utworzyć specjalną kolumnę
i nazwać ją ContactID.
(P: Co oznacza Int w polu Data Type?
W tej chwili potrzebujemy nowych kolumn w naszej bazie. W pierwszej
kolejności do tabeli dodajmy kolumnę ContactID, tak aby każdy rekord
U : Pole Dota Type określa, jaki rodzaj informacji
posiadał swój własny, unikalny identyfikator.
będzie przechowywany w danej kolumnie.
Int jest skrótem od integer, co oznacza liczbę
O Dodaj kolumnę ContactID do tabeli People.
całkowitą. Na tej podstawie wnioskujemy,
Wpisz ContactID w polu Column Name i wybierz Int
że kolumna ContactID będzie przechowywała
z listy rozwijalnej Data Type. Upewnij się, że na liście
liczby całkowite.
Allow Nulls została wybrana opcja No.
(P: To strasznie duio różnych informacji.
Na koniec utwórzmy klucz główny dla naszej tabeli.
Czy mam to wszystko rozumieć?
Podświetl kolumnę ContactID, którą właśnie utworzyłeś,
i naciśnij przycisk Pńmary Key. Spowoduje to, że każdy
U : Nie, nie ma problemu, jeżeli wszystkiego
wpis w tym polu traktowany będzie jako unikalny
w tej chwili nie rozumiesz. Twoim
klucz główny. aktualnym zadaniem powinno być poznanie
podstawowych sposobów korzystania z Visual
Studio IDE w celu określenia postaci formularza
m m ł n m
i uruchamiania programu. (Jeśli nie możesz
się doczekać, by dowiedzieć się czegoś więcej
Dodaj nową kolumnę typu int o nazwie
na temat baz danych, to zawsze możesz sięgnąć
ContactID. Upewnij się, że w polu Allow
po książkę SQL. Rusz głowq!).
Nulls zostata wybrana opcja No, a w polach
Uniąue oraz Primary Key opcja Yes.
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
wizualne MEJ bazy danych g bazy danych instalatora
1MET l
J
^ Powiedz bazie danych, aby automatycznie
generowała identyfikatory.
Dopóki ContactID jest numerem wykorzystywanym wyłącznie
Jestes tutaj
przez bazę danych, a nie przez użytkownika, dopóty możemy
obciążyć bazę obowiązkiem automatycznego generowania
identyfikatorów. W ten sposób nie musimy się martwić
o pisanie żadnego kodu potrzebnego do tego celu.
We właściwościach tabeli wyświetlonych poniżej przypisz
wartość True właściwości Identity, dzięki czemu ContactID
stanie się kolumną identyfikującą rekordy.
Nie zapomnij także wpisać nazwy tabeli, People ,
w polu Name u góry okna.
W tum oknie definiujesz swoją
tabelą i dane, które będzie
przechowywata.
Klucz gtówny
(ang. primary key)
c
pomaga bazie danych
szybko odnajdywać
rekordy. Ponieważ
je s t on podstawowym
narzędziem, którego
program będzie używat
do odnajdywania
rekordów w bazie,
zatem jego wartość
zawsze musi być
określona.
Dzięki temu
pole ContactID
aktualizuje się
automatycznie za
każdym razem,
gdy je s t dodawany
t bU l 7 C y f ontactID M o identyfikator rekordów
Ł
nowy rekord.
w tabeli, będziesz musiat kliknąć w prawej
jesteś tutaj % 61
Rozpocznijmy dyskusję
Pola na karcie kontaktowej stają się
kolumnami w tabeli People
Teraz, kiedy już utworzyłeś klucz główny tabeli, potrzebujesz
zdefiniować pozostałe pola, które zamierzasz przechowywać w bazie
danych. Każda rubryka w naszej pisanej karcie kontaktowej musi mieć
swój odpowiednik w postaci kolumny tabeli People.
Nazwa: Leokadia Kowalska
Firma: Balonexsp. z o.o.
Telefon: (11) 9853752
E-mail: l.kowalska@balonex.com.pl
Klient: Tak Ostatni kontakt: 10.07.2010
Każde pole na karcie
Dla każdej osoby chcemy
adresowej musi mieć
przechowywać następujące informacje:
nazwę kontaktu, nazwę firmy, numer swój odpowiednik
telefonu, adres e-mail, wartość w tabeli People,
określającą, czy je s t to klient firmu,
oraz datę ostatniego kontaktu
telefonicznego.
r-<^b W Y S I L ________
S Z A R E K O M Ó R K I
Jakie problemy mogą wyniknąć z przechowywania wielu rekordów
dotyczących tej samej osoby?
62 Rozdzielił*
Zwiększ wydajność za pomocq C#
Ą
Ą
KTO CO ROBI?
Teraz, kiedy stworzyłeś tabelę People oraz kolumnę z kluczem głównym, musisz dodać kolumny dla wszystkich pozostałych
pól danych. Zobaczmy, czy potrafisz dopasować określone dane do odpowiedniej kolumny w tabeli oraz dobrać opis
właściwy dla ich typu.
Nazwa kolumny Typ danych Opis
LastCall Ten typ przechowuje datę
i godzinę
int
Wartość logiczna true/false
Name
bit
Aańcuch liter, cyfr lub innych
ContactID
symboli o maksymalnej
długości 100 znaków
nvarchai-(100)
Liczba całkowita
Client?
datetime
jesteś tutaj % 63
To jest mój typ
*
*
KTO C f ROBI? ---------------------------
m Rmwiąmme
Teraz, kiedy stworzyłeś tabelę People oraz kolumnę z kluczem głównym, musisz dodać kolumny dla wszystkich pozostałych
pól danych. Zobaczmy, czy potrafisz dopasować określone dane do odpowiedniej kolumny w tabeli oraz dobrać opis
właściwy dla ich typu.
Typ danych Opis
Nazwa kolumny
Ten typ przechowuje datę
LastCall
i godzinę
Wartość logiczna true/false
Name
Aańcuch liter, cyfr lub innych
ContactID
symboli o maksymalnej
długości 100 znaków
Client?
Liczba całkowita
64 Rozdziali.
Zwiększ wydajność za pomocą C#
Obiekty Obiekty Pamięć Paczka
Zakończ tworzenie tabeli
Wróć do miejsca, gdzie wpisywałeś nazwę kolumny
ContactID, i dodaj sześć pozostałych kolumn z karty
kontaktowej. Tak oto powinna wyglądać tabela bazy
danych, kiedy skończysz:
Jesteś tutaj
Jeżeli usuniesz
zaznaczenie pola
Allow Nulls, kolumna
będzie musiata
posiadać wartość.
Pola bitowe
i
przechowują
wartości True lub Niektóre karty mogą
False i mogą być
zawierać niepetne
reprezentowane informacje, więc
przez kontrolkę niektóre kolumny
Check&ox. pozostaną puste.
Kliknij przycisk OK, aby zapisać swoją nową tabelę. W ten sposób nowa
pusta tabela zostanie dodana do bazy danych.
Po kliknięciu P ^ is*ah5 *
yisuai Studio doda tabelę
people do bazy danych.
c S S S = , .
danych. wPl$ywania
jesteś tutaj % 65
%
Wstawiając dane
Wstaw dane z kart do bazy
Teraz jesteś już gotowy do wstawienia danych z kart do bazy.
Mamy tutaj kilka kontaktów szefa użyjemy ich do przygotowania
wstępnej bazy danych zawierającej kilka rekordów.
DutabaseAplwer " ( X Form łxs
lc
,
a yp Data Connecttons
* lit? ContaetDELsdf
W oknie Database Explorer
s lM Tables
Twoim zadaniem je st
(lub Sewer Explorer) rozwiń wpisanie danych z tych
sześciu kart do tabeli
element Tables, kliknij tabelę
People.
People prawym przyciskiem myszy
i wybierz Show Table Data.
(2) Gdy na głównym ekranie pojawi
się tabela, wpisz do niej wszystkie
poniższe dane. (Na początku będą
tam same wartości nuli, ale nie Nazwa- Leszek Jawczyk
przejmuj się. Zapełnij pierwszy rząd
Firma: EkstraLans S.A-
Wpisz True lub False
prawidłowymi danymi, ignorując
w kofumnie Client.
Telefon: 02M2345Ó7
ostrzeżenia pokazujące się obok
To w tej postaci i>QL.
przechowuje wartości
nich). Nie musisz uzupełniać
E-mail'- leszeki@eisa.pl
typa J a k lub Nie .
kolumny ContactID, bo zostanie
to zrobione automatycznie. m ient: Tak O statni
Nazwa: Krystyna Bryczewska \
Firma: Dom Wydawniczy B ry c z e h ^ J"!
Nazwa: Eliza Wizewska
Telefon: (48) 8721723
Firma: EWAR.
E-mail:/:. bryczewska@bryczewska.pl
Telefon: (11) 1928375
Klient: Tak Ostatni kontakt: 21.07.2010
E-mail: eliza_wizewska@ewat.org
Klient: Tak Ostatni kontakt: 30.08.2009
66 Rozdziali.
Zwiększ wydajność za pomocq C#
Nazwa: Sabina Komar / \
Papiernia ObielJbwo
Nazwa: Franciszek Majewski ( \
Firma: NWOPromo "
Papiernia O b ie jo w
Firma: Agencja Reklamowa HRM
Telefon: (11)5352510
Telefon: (33) 1817161
E-mail: sabina@nwop.org.pl
E-mail: francek.majewski@hrm.com.pl
Klient: Tak Ostatni kontakt: 18.07.2010
Klient: Tak Ostatni kontakt: 17.12.2010
: Leokadia Kowalska
firma Papiernia Obiektowo znajduje ^
Firma: Balonex sp. z o.o.
się w Polsce, zatem dyrektor wpisuje
datu w postaci 21.05.2010, gdzie 05
Telefon: (11)9853752
oznacza miesiąc maj. Jeśli system
zostat skonfigurowany dla innego
E-mail: l.kowalska@balonex.com.pl
kraju, być może, że daty trzeba ^
będzie wpisywać w innym formacie,
Klient: Tak Ostatni kontakt: 10.07.2010
na przyktad 05/26/10.
Po wpisaniu sześciu rekordów
wybierz po raz kolejny Save Ali
z menu File. Powinno
Save Ali nakazuje IDE zapisać ^
wszystko to, co należy do aplikacji.
to zaowocować zapisaniem
Tum różni się od zwykłego Savef
ich wszystkich w bazie.
zapisującego tylko plik, nad którym
w danej chwili się pracuje.
i Niejstnieja.
głupie pytania----------------------
( P : Co się dzieje z danymi po tym, jak je wpisałem?
(P : Dobrze, wpisałem te sześć rekordów. Czy one będą
Gdzie one idą?
częścią mojego programu na zawsze?
U : IDE automatycznie zapisuje wprowadzone wartości
U : Tak, będą one integralną częścią tak samo jak kod, który
w tabeli People w bazie danych. Tabela jej kolumny, typy
napisałeś, i formularz, który zaprojektowałeś. Różnica polega
i wszystkie dane jej dotyczące przechowywana jest
na tym, że baza nie jest kompilowana do postaci programu
w pliku ContactDB.sdf SQL Server Compact. Plik ten jest
wykonywalnego. Jej plik jest kopiowany i przechowywany
integralną częścią projektu i IDE aktualizuje go podczas jego
razem z plikiem wykonywalnym. Gdy aplikacja potrzebuje
zmiany tak jak każdy inny plik z kodem.
dostępu do danych, wykonuje szereg operacji odczytu
i zapisu na pliku ContactDB.sdf znajdującym się w jej
katalogu wyjściowym.
Ten plik je s t w rzeczywistości
bazą danych SQL i Twój program
może go używać za pomocą kodu
wygenerowanego dla Ciebie
przez IDE,
ContactDB.sdf
jesteś tutaj % 67
Wszystkie dane sq tutaj
Połącz formularz z bazą danych,
korzystając ze zródeł danych
Nareszcie jesteśmy gotowi do utworzenia obiektów .NET, które będą wykorzystywane
przez formularz do integracji z bazą danych. Potrzebujemy zródła danych, które
w rzeczywistości będzie kolekcją instrukcji SQL używanych do wymiany informacji
pomiędzy formularzem a bazą ContactDB.
Kiedy ju ż skończysz
wprowadzać dane,
O Przejdz z powrotem do formularza aplikacji.
zamknij okno danych,
Zamknij tabelę Peopie i diagram bazy danych ContactDB.
by wrócić do formularza.
Powinieneś w tej chwili widzieć zakładkę Forml.cs [Design].
Peopie: Q u efy (C :\lL , kty\ContactDB,sdfC X
ContactID Name Com pany Telephone Email Client LastCall
1 Leokadia Kowal,,. Balonem sp. z o.. (11)9853752 Lkow alska@ baL, Troe 2010-07-10 00:00:00
2 Leszek Jawczyk Ekstralans S.A. (12) 1234567 Ieszekj@ei_sa.pl Trye 2010-01-12 00:00:00
3 Krystyna Brycze... Dom W ydaw ni,, 148)8721723 k.byrczewska.,. I r y e 2010-07-21 00:00:00
11) 1328375 efea_wizewska... Trye 2009-08-30 00:00:00
4 Eliza Wszewska EWAR Ł
5 Franciszek M aje... A gencja Rekfa.., (33) 1817161 francek.m ajews... T rye 2010-12-17 00:00:00
6 Sabina Komar MWOPromo d l ) 5352510 sabina@nwop,.., True 2010-07-1 8 0 0 :00:00
%* NULL w m NULL NULL NULL NULL M A Ł
Dodaj nowe zródło danych do aplikacji.
W tej chwili powinno to być proste. Kliknij menu Data,
a następnie wybierz z rozwiniętej listy Add New Data Source...
|ż| Kontakty - Microsoft Visual C# 2010 Express (Administrator):
File Edrt Project BuM Debug Data j Format Wmdow
! : j | K f j H l i 1 * ?j S3 sh Sources
; p}::j la i ) g ^ iUt:r o ś g j 3 PrK *'Da,s-
|
^ Add New Data Source.,
yródto danych, które
tworzysz, będzie obstugiwato
ca tą komunikację pomiędzy
i j l Data Connectbns
formularzem i bazą danych.
^ Oj. ContactDB.sdf
J S| Tables
Ł3 Repiication
68 Rozdziali,
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
wizualne MEJ bazy danych \ bazy danych instalatora
I .NET
\
V
O Skonfiguruj zrócHo danych.
Teraz musisz dostosować zródło danych, aby używało bazy
ContactDB. Poniżej opisano czynności, które w tym celu
powinieneś wykonać:
f& Krok 1.: Wybierz Database i kliknij przycisk Next.
f& Krok 2.: Wybierz Dataset i kliknij przycisk Next.
f& Krok 3.: Wybierz połączenie z bazą danych.
Na rozwijalnej liście powinieneś już zobaczyć
połączenie ze swoją bazą. Kliknij przycisk Next.
Przejście przez poszczególne
etapy pozwala na potączenie
f& Krok 4.: Na ekranie Choose Your Objects zaznacz
zródta danych z tabelą Peopfe
w bazie danych ContactDB.
pole wyboru przy elemencie Tables.
f& Upewnij się, że w polu DataSet Name
wpisane jest ContactDBDataSet , i kliknij Finish.
W wersjach Visual Studio innuch niż
n n t T 3 zosfani.?tSz poproszony o zapisanie
połączenia w pliku konfiguracujnum
aplikacji. Kliknij przycisk Yes .
Teraz Twój formularz może używać
zródta danych do interakcji z bazą
danych ContactDB.
H Form l
" O "
ContactPBPataSet.xsd
O programie
m
Lista kontaktów v ł.O ..
Autor Twoje imię
ContactPB.sdf
Ten plik to Twoja baza danych.
ContactPBPataSet.
To je s t Twój formularz.
Pesigner.cs
Te pliki zostaty
wygenerowane przez zródto
danych, które wtaśnie
skonfigurowałeś.
jesteś tutaj % 69
Połącz to ze sobą
Dodaj kontrolki powiązane z bazą danych
do formularza
Wymaga to nieco wysitku, ale
Teraz możemy powrócić do naszego formularza i dodać kilka kontrolek.
wracamy tutaj, aby utworzyć
obiekty formularza, które będą
Nie będą to jednak zwykłe kontrolki, tylko takie, które będą powiązane
współpracować z bazą danych.
z naszą bazą danych i kolumnami w tabeli People. Oznacza to, że każda
zmiana danych w jednej z nich pociągnie za sobą automatyczną zmianę
informacji w odpowiedniej kolumnie bazy danych.
A oto sposób na utworzenie kilku kontrolek powiązanych z bazą danych:
Jeżeli nie widzisz tej
zaktadki, wybierz Show
O Wybierz zródło danych, którego chcesz używać.
Data Sources z menu Data.
Wybierz Show Data Sources z menu Data. Spowoduje
to pojawienie się okna Data Sources z wyświetlonymi
zródłami danych skonfigurowanymi dla tej aplikacji.
Możesz także
poszukać zakładki
Data Sources w dolne
części okna Database
f
Explorer. a następnie
lanych. ^ t4T L T ^ r Twjezródta
tylko jedno, T *
ją kliknąć.
h hczby dla 'nnych tabel lub baz danych.
Wybierz tabelę People.
Pod elementem ContactDBDataSet powinieneś zobaczyć tabelę People i wszystkie jej kolumny. Kliknij
strzałkę widoczną obok nazwy tabeli, aby wyświetlić jej zawartość w ten sposób zobaczysz wszystkie
kolumny dodane wcześniej. Kiedy w oknie Data Sources klikniesz tabelę People i przeciągniesz ją
na formularz, IDE automatycznie doda do niego kontrolki, dzięki którym użytkownik będzie mógł
przeglądać dane oraz je wpisywać. Domyślnie IDE dodaje kontrolkę DataGńdView, przypominającą nieco
okno arkusza kalkulacyjnego. Aby dodać do formularza osobne pola dla poszczególnych kolumn tabeli,
kliknij strzałkę widoczną z jej prawej strony i z wyświetlonego menu wybierz opcję Details.
Kliknij tę strzatkę i wybierz opcję Details, aby
kazać IDE dodać do formularza osobne kontrolki
dla poszczególnych kolumn, a nie jedną dużą
kontrolkę przypominającą arkusz kalkulacyjny.
f
Tutaj powinny zostać
Tę rozwijalną listę zobaczysz wyłącznie
wyświetlone wszystkie
w przypadku, gdy otworzone je s t okno
utworzone wcześniej
do projektowania formularzy. Pozwala ono
kolumny tabeli.
na bezpośrednie przeciągnięcie kontrolek
danych z okna zródta danych i umieszczenie
ich na formularzu.
70 Rozdział 1.
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
wizualne ,NET bazy danych bazy danych instalatora
.NET
U
t
Jesteś tutaj
Utwórz kontrolki powiązane z tabelq People.
O
Przeciągnij i upuść tabelę People na formularz. Powinieneś
zobaczyć wstawione kontrolki odpowiadające każdej
kolumnie bazy danych. Nie przejmuj się w tej chwili ich
wyglądem, tylko upewnij się, że wszystkie pojawiły się
na formularzu.
Jeżeli coś przypadkowo kliknąłeś i z ekranu zniknął formularz,
zawsze możesz do tego widoku powrócić, wybierając zakładkę
Form1.cs [Design], lub otworzyć Form1.cs z okna Solution Explorer.
IDE tworzy
Forml.cs ^Design]* X |
ten pasek
narzędzi
-o r i a?
do nawigacji
%n * y
po tabeli
People. [.'. C l
% S t j i
1
Kiedy przeciągnąłeś
tabelę People
na formularz, dla każdej
-B
Te elementy
jej kolumny zostały
Comp ary
nie będą
utworzone odpowiednie
Tetephone:
wyświetlane
kontrolki.
Bnai:
na formularzu,
Oent: 3 check8ax1
ale będą
reprezentowały
LastCaii: 2S września 2010
kod, który zostat
utworzony
przez IDE
do zarządzania
%ą3 eon tac tDBDataSet W peopteBindingSourcepeopleTshieAdaptefXIiayeAdapterManag*r
tabelą People ' ^
oraz bazą danych
ContactDB.
4 -
Obiekt
peopleBindingNavigator
Ten obiekt łączy
łączy kontrolki paska
formularz z tabelą People Ten adapter pozwala
narzędzi z tabelą
bazy danych.
kontrolkom wykorzystywać
bazy danych.
wyrażenia SQL, które
IDE oraz zródło danych
wcześniej wygenerowały.
jesteś tutaj % 71
Upiększ to
Dobre programy sż intuicyjne w użyciu
Nazwa: Leokadia Kowalsko f \
Firma: Balonex sp z o.o. P\^lab w
a n^ o
Co prawda formularz teraz działa, ale nie wygląda dobrze.
Nasz formularz
Twoja aplikacja musi być więcej niż tylko funkcjonalna.
Telefon: (11)9853752
byfby intuicyjny,
Powinna być łatwa w użyciu. Dzieli Cię zaledwie kilka etapów
gdyby wyglądał E-mail: Lkowabka@balonex.com.pl
od osiągnięcia wyglądu formularza zbliżonego do wyglądu
jak karta
Klient: Tak Ostatni kontakt: 10.07.2010
kontaktowa.
papierowych kart, których używaliśmy na początku
niniejszego rozdziału.
(T) Wyrównaj etykiety i pola tekstowe.
Wyrównaj etykiety i pola tekstowe względem lewej krawędzi
formularza. Będzie on wyglądał podobnie do innych aplikacji,
a użytkownicy będą czuli się znacznie bardziej komfortowo podczas
korzystania z programu. Przetłumacz angielskie treści etykiet
powstałych automatycznie na podstawie nazw kolumn z tabeli People.
4? Forml
H 4 0 of {} % H ! # x y
0
iD kontaktu:
Nazwa:
Podczas przeciągania
Rrma:
kontrolek na
Telefon:
formularzu będą
pojawiaty sią
Email:
niebieskie linie. Ą%... ....................o................... (Bo
Klient:
O . O ...........Ó
utatwić wyrównywanie
Ostatni kontakt: ; 7 stycznia 2011 ź%
poszczególnych
elementów interfejsu.
(2) Zmień właściwość Text kontrolki CheckBox.
Podczas wstawiania kontrolek do formularza obok kontrolki CheckBox pojawia się
etykieta, która musi zostać usunięta. Po prawej stronie, pod oknem Solution Explorer,
powinieneś dostrzec okno Properties. Przewiń jego zawartość w dół aż do napotkania
właściwości Text. Usuń fragment checkBoxl .
nn
Properttes w J
dientCheckBox System.Wftidows.Forms.CbeckBox
RightToleft No
f Usuń ten napis,
r> Size 200; 24
aby pozbyć się tekstu
Tablnde* 14
TabStcsp True
z kontrolki CheckBox.
1||| Tg
a
TesetAiign
T ejctlmageRetetksn i Overtay
ThreeState j Faise
UseCompatibieTertRenctermę False
UseMnemonic True
.. .UeVsuatS #a I
s t MBęfcę.s!....Trae
72 Rozdział 1.
Zwiększ wydajność za pomocę C#
Obiekty Obiekty Pamięć Paczka
wizualne .NET bazy danych bazy danych instalatora
j,NET
Jesteś tutaj
. -
\\ J j
Nadaj aplikacji profesjonalny wygląd.
Możesz także zmienić nazwę formularza. Dokonasz tego
poprzez kliknięcie w jego dowolnym pustym miejscu
i odnalezienie właściwości Text w oknie Properties. Dla naszych
Powodem, dla którego chcesz
potrzeb zmień nazwę na Papiernia Obiektowo Lista
usunąć przycisk maksymalizacji,
kontaktów .
je s t to, że nie zmienia ona pozucji
kontrolek na formularzu. Pusta
przestrzeń sprawia, że wuolada
Możesz także, w tym samym oknie, wyłączyć przyciski
on dość dziwnie.
do minimalizacji i maksymalizacji. W tym celu poszukaj
właściwości MaximizeBox oraz MinimizeBox i ustaw
ich wartości na False.
Forml Sys*em.W(rvdow$Jcfmi.Fofm
Okno Properties
= " * -j " ; "
Showkon True
powinno się
ShowInTłskbjf True
znajdować zaraz
Seze 351; 233
pod oknem Solution SizeGripStyle Auto
StartPosrtion WindewsDefaultLccatii
Explorer, w dolnej
T9 -------- Właściwość Text określa
*
Text f Papiernia Obiektowo
części prawego
TopMost ... tekst wyświetlany
panelu IDE. Trarsparer>cyKey | |
na pasku tytuto wym
UseWaitCureor False
WindowState Ncfma! formularza.
Text
The test SASociatesJ vwth the cę-ntfc!,
Jeżeli nie masz okna Properties, to możesz je uaktywnić,
wybierając odpowiednią pozycję z menu View.
Dobra aplikacja to nie tylko taka, która działa,
ale taka, która jest także łatwa w użyciu.
Dobrym zwyczajem programisty jest upewnienie się,
że aplikacja zachowuje się dokładnie tak,
jak spodziewałby się tego przeciętny użytkownik.
jesteś tutaj % 73
Dobra, jeszcze jedno rzecz..
Jazda próbna
Pozostała nam do zrobienia tylko jedna rzecz: uruchomić program
i sprawdzić, czy wszystko działa tak, jak powinno. Zrób to tak samo jak
Naciśnij ten X w rogu,
do tej pory naciśnij klawisz F5 na klawiaturze albo kliknij w przycisk
aby zamknąć program.
W ten sposób możesz
z zieloną strzałką ( p ) na pasku narzędzi (lub wybierz Run z menu Debug).
przejść do następnego etapu.
Możesz uruchomić swój program w każdej chwili, nawet jeśli nie jest jeszcze
skończony. Jeżeli w kodzie są błędy, to IDE Ci o tym przypomni i wstrzyma
wykonywanie programu.
a j Papiernia Obiektowo - Lista kontaktów UELUIEj
Te kontrolki
H 4
pozwalają przeglądać
kolejne rekordy ^
zapisane w bazie ID kontaktu: |
Budowanie
Pa jjL m la O
danych.
Nazwa: Leokadia Kowalska
programu
Firma: Babne& sp. z o.o.
nadpisuje dane
Telefon (11)9853752
w bazie.
Email: I .kowalska @batonex.com .pl
Klient: 0 Ostatni kontakt: TO lipca 2010
Poświęcimy na to więcej
czasu w następnym
rozdziale.
Za każdym razem,
gdy budujesz program,
IDE najpierw buduje, potem wykonuje.
IDE umieszcza
Kiedy uruchamiasz swoją aplikację, IDE właściwie robi dwie rzeczy. w katalogu bin nową
Najpierw buduje program, a następnie go wykonuje. Proces ten składa kopię bazy danych. Oznacza
się z kilku niezależnych części. IDE kompiluje kod i zamienia go to utratę wszelkich danych
na postać wykonywalną. W następnej kolejności umieszcza skompilowany zapisanych w niej podczas
kod razem z zasobami i innymi plikami w podkatalogu katalogu bin. wcześniejszego uruchomienia
programu.
W tym przypadku plik wykonywalny oraz baza danych SQL znajdą się
Jeśli kod programu się zmienił, to próba
w katalogu binIdebug. Plik bazodanowy jest kopiowany za każdym razem,
debugowania go z poziomu IDE powoduje jego
więc zmiany wprowadzone w trakcie pracy z IDE zostaną utracone.
ponowne zbudowanie to z kolei oznacza,
Jeżeli plik wykonywalny będzie uruchamiany bezpośrednio z poziomu
że czasami uruchomienie programu z poziomu
systemu Windows, dane zostaną zachowane chyba że, po raz kolejny,
IDE spowoduje nadpisanie wcześniejszej
projekt zostanie zbudowany przy użyciu IDE. W takim przypadku IDE zawartości bazy. Jeślijednak uruchomisz swój
program bezpośrednio z katalogu bin/debug,
nadpisze bazę danych SQL nową kopią zawierającą dane skonfigurowane
bądzjeśli użyjesz instalatora, by go zainstalować
przy pomocy okna Database Explorer.
na swoim komputerze, to problem utraty
danych nie wystąpi.
74 Rozdziali.
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
Jak zamienić TWOJ aplikację
wizuafne.NET bazy danych iF f * - bazy danych instalatora
I .NET g S g T *
\
w aplikację W SZYSTKICH
W
-M % I
W tym momencie posiadasz wspaniały program. Problem polega na
tym, że działa on tylko na Twoim komputerze. Oznacza to, że nikt *** | ^ . y
inny go nie będzie używał, nikt Ci za niego nie zapłaci, nikt nie ^
zobaczy, jak wspaniałym programistą jesteś, i nikt Cię nie zatrudni... Jesteś tutaj
a Twój szef i klienci nie dostaną raportów generowanych z bazy
danych.
C # znacznie ułatwia przeprowadzenie procesu wdrożenia.
Wdrożenie aplikacji to zainstalowanie jej na innych komputerach.
Z pomocą Visual C # IDE przygotowanie sprowadza się
do dwóch etapów.
Budowanie projektu
Wybierz Publish Kontakty
^ Kontakty - Microsoft Vśsal Ź # 2010 Łxpress (Administrator)
powoduje kopiowanie
z menu Project. Build | Bebug Data Format Tmte
plików na komputer
iutŚdSolutbn m
lokalny. Opcja Publish
Rebuild Solsitkm
tworzy instalacyjny
Pubbsh Kontakty plik wykonywalny wraz
: z plikiem konfiguracyjnym,
--------1
aby inni użytkownicy także
mogli zainstalować Twój
program.
Zaakceptuj wszystkie domyślne
wartości w oknie Publish Wizard
poprzez naciśnięcie przycisku
Finish. Zobaczysz, jak Twoja
aplikacja będzie pakowana,
Ąou may publish the spptkaticn to s web sste, FTP server, or fite path.
a następnie ujrzysz folder,
Aramples;
Disk path: c:\depicry\myappiicatton
w którym znajdzie się plik
File share \\servef\myappikation
FTP serven ftp://ftp.mkrosoft.corn/my3pplk3tion
setup.exe.
Web srte http://www.mtaosoft.com/my3pplicatiorł
Jeśli używasz Visual Studio
w wersji Łxpress, to opcję
Publish znajdziesz w menu
Project; w innych wersjach
VS została ona umieszczona
w menu Build.
jesteś tutaj % 75
Dziel się miłością
Przekaż aplikację innym użytkownikom
Z chwilą utworzenia paczki instalacyjnej utworzony został także folder
publishl. Katalog zawiera kilka składników, a wszystkie związane są
z procesem instalacji. Najważniejszym dla użytkowników jest setup,
czyli program, który pozwoli im zainstalować Twoją aplikację na ich
własnych komputerach.
To je st miejsce, gdzie
są przechowywać
wszystkie pomocnicze
pliki instalatora.
Być może
będziesz
musiał
uruchamiać
program instalacyjny
W ten sposób
/
z prawami administratora.
użytkownicy Twojego
Ten plik udziela <
programu będą go
instalatorowi wszelkich
Jeśli no komputerze nie jest jeszcze
instalować na swoich
informacji na temat tego,
komputerach!
zainstalowany SQL Sewer Compact, kfdre plik? powinny zostać
dotączone do programu
to wygenerowany program
podczas instalacji.
instalacyjny spróbuje go pobrać
i zainstalować. Na niektórych
komputerach operacji tych nie da się
wykonać, jeśli program nie zostanie
uruchomiony przez użytkownika
Moja sekretarka właśnie mi powiedz-iała.,
z prawami administratora, dlatego
ż.e skończyłeś pisać nową baz.ę kontaktową
też kliknijjego ikonę prawym
.i ie wsz.ystko już. dz.iała. Pakuj swoje waliz.ki
przyciskiem myszy i z menu
mamy miejsce w odrzutowcu do Aspen dla
podręcznego wybierz opcję
takiego pomysłowego pracownika jak Ty!
Uruchom jako administrator".
Jeśli nie masz do niej dostępu,
to nie musisz się tym przejmować
i bez niej możesz kontynuować
lekturę tej książki.
Wudam się, że szef je st zadowolony.
Dobra robota! Jednak zanim potec.sz
szu sow ać na stokach, pozostaje
jeszcze jedna rzecz do zrobienia...
76 Rozdziali,
Zwiększ wydajność za pomocq C#
Obiekty Obiekty Pamięć Paczka
Jeszcze nie skończyłeś:
wizualne .NET bazy danych*/ bazy danych instalatora
| .NET
\
przetestuj instalację
W
' %
J
Zanim zaczniesz strzelać korkami od szampana, musisz przetestować
% .. { j ......
wdrożenie i instalację. Nie dasz chyba nikomu swojego programu,
s s * . Oc, J
f
dopóki sam go nie wypróbujesz?
Jesteś tutaj
Zamknij Visual Studio IDE. Uruchom program instalacyjny
i wybierz katalog na swoim komputerze, w którym chcesz umieścić
aplikację. Następnie uruchom program z podanej lokalizacji
i upewnij się, że działa dokładnie tak, jak sobie wyobrażałeś. Możesz
także dodać lub zmodyfikować kilka rekordów. Zostaną one
oczywiście zapisane w bazie danych.
Teraz- mozesz dodawać,
t
zm em ać i usuwać rekordu.
Wszystko to zostanie zapisane
bazie danych. F
j
CZ3
ip Papiernia Obiektowo - Lista kontaktów
Możesz używać
strzatek i pola of e % h 4> x y
M 4 i l
tekstowego do
poruszania się
10 kontaktu: i
pomiędzy rekordami.
r \
Nazwa: Leokadia Kowalska
Rrma: 8ażonexsp. z o.o.
Telefon: {11)8853752
Email: I .kowalska @batenex.com .pl
Nie bój się--
Klient: Q\ Ostatni kort akt: ^ ^Pca
Wprowadz kilka
zmian. Aplikacja
jest zainstalowana,
Znajdziesz tu wszystkie
więc tym razem dane wpisane wcześniej
kontakty. Są one zapisane
nie zginą.
w pliku bazy danych
~~ ContactDB.sdf - który
zostat zainstalowany wraz
z Twoim programem.
TESTlJ) WSZYSTKO!
Przetestuj swój program,
przetestuj swoj^ instalację,
sprawdz dane w swojej aplikacji.
jesteś tutaj % 77
Superszybko
Obiekty Obiekty Pamięć Paczka
Otworzyłeś pełnowartościową wizualne.NET bazy danych bazy danych instalatora
M E T 1 Poleceń* INER ją ^ g \
S T
" l i t I | PolecemUDTfr; Tab*U
e P A
aplikację bazodanową
Dzięki Visual Studio IDE stworzenie aplikacji
Windows, zaprojektowanie i utworzenie bazy danych
oraz połączenie ich w jedną zgrabną całość jest
dość proste. Możesz nawet wygenerować program
instalacyjny za pomocą zaledwie kilku kliknięć.
Od tego
d J Papiernia Ohś4rtawn - ikta kontaktów ' ^ ' H S H l
of 6 1 % n ; < % x y
*
M i \ i
Nazwa: Leokadia Kowalska
ID kontaktu:
ł - i
-
Firma: Balonex sp. z o.o.
Nazwa: J Leokadia Kowalska ::, j r
Firma: Balonex sp z o.o.
Telefon: (11) 9853752
tego
E-mail: l.kowalska@balonex.com.pl Telefon: fl 1) 9853752
Email: i .kowalska@3slonesc.corn .pl
Klient: Tak Ostatni kontakt: 10.07.2010
Ostatni kontakt: ^
Pca w
w mgnieniu oka.
Siła Visual C# polega na tym, że możesz
szybko utworzyć cos działającego,
a następnie skupić się na tym, co rzeczywiście
Twój program powinien robić... a nie
na oprogramowywaniu licznych okien,
przycisków i zestawu instrukcji SQL.
i *8
4
Wyszukiwarka
Podobne podstrony:
IE RS lab 14 solutions
Układy napędowe lab 14 15 ver3
elektro lab 14
IE RS lab 14 diagram
IE RS lab 14 overview
lab zima 13 14
LAB AR zima 13 14
14 3 2 Lab Share Printer Scanner
14 3 2 Lab Share Printer Scanner in Windows 7
14 6 5 Lab Fix Printer
instrukcja do lab mioc mechanika sem 3 blachy karoseryjne 14
14 6 3 Lab Troubleshooting Printer Problems in Windows 7
T 14
Rzym 5 w 12,14 CZY WIERZYSZ EWOLUCJI
więcej podobnych podstron