[ Pobierz całość w formacie PDF ]

przeznaczenia zwracanych danych. Na przykład, aby zapisać dane w obiekcie
(opis w nast�pnym punkcie), należy napisać, co nast�puje:
Aby wysłać zapytanie, które nie b�dzie zwracać danych, należy napisać:
Wi�cej wiadomości na temat metod w dalszej cz�ści książki.
Obiekt OleDbDataReader
Obiekt jest prostym obiektem umożliwiającym prosty dost�p do da-
nych zapisanych w magazynie danych. W gruncie rzeczy jest to obiekt wy-
świetlający dane w postaci strumienia (strumień ). Wi�c po co stosować obiekty
, jeśli do dyspozycji są obiekty ?
Dane są odczytywane z bazy danych za pomocą obiektu i przechowywane
w pami�ci, dopóki nie zostaną wydane inne dyspozycje. Umożliwia to wykonywanie
różnych operacji na takim odłączonym magazynie danych. Można, na przykład, mo-
dyfikować dane, nie przejmując si� tym, co robią inni użytkownicy i dokonać prze-
kształcenia na inny format. Jednak po rozpocz�ciu pobierania dużej ilości danych z ba-
zy danych napotyka si� na ograniczenie pami�ci, ponieważ w całości zapisany w niej
jest obiekt . Jeśli użytkowników są tysiące, a każdy z nich ma własny obiekt
, pojawiają si� poważne problemy. (Należy zwrócić uwag�, że jest to przypadek
skrajny, ale na jego przykładzie jasno widać potrzeb� stosowania obiektów mniej-
szych niż ).
Obiekt umieszcza w pami�ci jednorazowo tylko jeden wiersz da-
nych. Na żądanie tworzy strumień danych z magazynu danych. Zapobiega to wyst�-
powaniu wielu problemów związanych z dost�pną pami�cią, co daje w wyniku po-
praw� wydajności systemu. Niestety, z powodu tego, że dane mają postać strumienia,
obiekt ma mniejszy zbiór funkcji niż obiekt . Obiekt
jest obiektem tylko do odczytu; nie można również powracać do rekor-
dów, które zostały już przetworzone.
Po zapisaniu danych w obiekcie przechodzenie do kolejnych rekor-
dów jest bardzo łatwe. Należy po prostu wywołać metod� . Przykład zamiesz-
czono na wydruku 10.4.
Wydruk 10.4. Przechodzenie pomiędzy kolejnym rekordami zapisanymi w obiekcie OleDbDataReader
296 ASP.NET dla każdego
Fragment powyższego wydruku od wiersza 7. do wiersza 12. powinien być zrozu-
miały: utworzony zostaje obiekt , obiekt i wykonywane
jest wyrażenie j�zyka SQL. Nast�pnie utworzony zostaje nowy obiekt
. W przypadku zastosowania obiektu metoda automatycznie
otwiera i zamyka połączenie z bazą danych. Jednak w przypadku zastosowania obiektu
trzeba umieścić odpowiednie metody w kodzie strony (wiersz 16. i 22.).
Wiersz 17. zawiera wywołanie wyrażenia SQL i tworzy strumień danych za pomocą
obiektu . W wierszach 19.  21. nast�puje odczytywanie kolejnych
rekordów obiektu .
Metoda przechodzi automatycznie do kolejnego rekordu, zatrzymując si� na ostat-
nim. W wierszu 20. za pomocą metody , która dokonuje konwersji typu
zwracanych danych na typ , odczytywane jest pierwsze pole każdego z rekor-
dów. (Nieco dalej metoda ta zostanie opisana bardziej szczegółowo). Nast�pnie od-
czytane i przekształcone dane są wyświetlane za pomocą metody .
Wynik wykonania kodu z powyższego wydruku zamieszczono na rysunku 10.7.
Sprawdzając wartość atrybutu , można sprawdzić, czy program dotarł już
do ostatniego rekordu. Jeśli atrybut ten ma wartość logiczną , oznacza to, że obiekt
zawiera wi�cej rekordów. W przeciwnym przypadku atrybut ten ma
wartość logiczną .
Obiekt zawiera również szereg metod , które zwracają dane, do-
konując równocześnie konwersji na określony typ ( , , itd.).
Metody te stosuje si�, aby uniknąć konieczności rzutowania typów danych, kiedy da-
ne te są przekazywane poza obiekt .
Rozdział 10. f& Korzystanie z baz danych za pomocą obiektów ADO.NET 297
Rysunek 10.7.
Odczytanie
rekordów obiektu
OleDbDataReader
za pomocą
metody Read
Bardzo ważne jest, aby zamykać obiekt , kiedy nie jest już potrzeb-
ny. Taki sam skutek ma zamknięcie obiektu .
Tak Nie
Stosuj obiekt wszędzie tam, Nie stosuj obiektu , kiedy
gdzie kluczową sprawą jest wydajność należy wykonać pewne operacje na danych
systemu i wystarczy tylko wyświetlić dane przed lub po wyświetleniu ich.
odczytane z bazy danych.
Wyrażenia SQL Update, Insert oraz Delete
Ponieważ obiekt jest obiektem tylko do odczytu, nie umożliwia mo-
dyfikowania danych. Zamiast tego konieczne jest użycie odpowiednich wyrażeń j�-
zyka SQL ( , i ) jako parametru obiektu .
Jednak żadne z tych wyrażeń nie zwraca rekordów, tak jak to czyni wyrażenie .
Z tego wzgl�du należy stosować metod� , która zwraca wartość typu
, określającą, ile rekordów zostało zmienionych za pomocą któregoś z wy-
mienionych powyżej wyrażeń. Przykład zamieszczono na wydruku 10.5.
Wydruk 10.5. Zastosowanie metody ExecuteNonQuery
298 ASP.NET dla każdego
Ponieważ pole jest polem identyfikującym (identity field), za pomocą
powyższego wyrażenia znaleziony zostanie co najwyżej jeden rekord, o ile w tabeli
jest wiersz zawierający taki identyfikator. Sprawdzając wartość zmiennej można prze-
konać si�, czy wykonanie tego wyrażenia miało jakiś skutek. Wyrażenia oraz
działają podobnie (wi�cej informacji na temat wyrażeń SQL można znalezć
w rozdziale 8.).
Obiekt OleDbDataAdapter
Tak samo jak obiekt służył do obsługi obiektów , obiekt
współpracuje z obiektami . Głównym przeznaczeniem
obiektu jest pobieranie danych z magazynu danych do obiektu
oraz zapisywanie danych z powrotem z obiektu do magazynu danych.
Model tego obiektu znajduje si� na rysunku 10.8. Obiekt ten zawiera cztery metody
, które służą do usuwania, wstawiania, wybierania i aktualizacji danych w obiekcie
. Kolekcja określa, w jaki sposób tabele i kolumny ze zródła
danych są odwzorowane w obiektach .
Rysunek 10.8.
Model obiektu
OleDbDataAdapter
Obiekt ma duże możliwości. Chociaż jego głównym przeznacze-
niem jest tylko odczytywanie danych, można za jego pomocą tworzyć nowe tabele
z istniejących danych lub przedstawiać dane w postaci XML. Bardziej zaawansowane
metody zostaną opisane w dalszej cz�ści niniejszego rozdziału, najpierw należy zapo-
znać si� z podstawowymi informacjami na temat obiektu .
Tworzenie obiektu przypomina tworzenie obiektu (wy-
druk 10.6).
Wydruk 10.6. Tworzenie obiektu OleDbDataAdapter
Rozdział 10. f& Korzystanie z baz danych za pomocą obiektów ADO.NET 299
Jak pokazano na rysunku 10.8, obiekt zawiera cztery metody
. Każda z tych metod jest w rzeczywistości obiektem z własnymi
atrybutami oraz (wiersze 6. i 7.). W powyższym przykładzie
metodą określoną przez podanie wyrażenia SQL w trakcie inicjalizacji obiektu (wier-
sze 10. i 14.) jest metoda . Jeśli ma być zastosowana inna metoda
, na przykład , należy odpowiednio zmodyfikować program.
Należy pamiętać o tym, że, stosując metody , i , w rzeczywi-
stości nie zmienia się zawartości odnośnego magazynu danych, ale obiekt [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wrobelek.opx.pl
  •