[ 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
  •