[ Pobierz całość w formacie PDF ]
.do 32.).Kolejna pętla for (zapisana w wierszach od 34.do 40.) wyświetla nazwyoraz typy danych poszczególnych kolumn dostępnych w danej tabeli.Obiekt DataSet wie jakietypy danych reprezentuje każda z kolumn tabeli, gdyż określa jej schemat na podstawie strukturydanych.Jednak dzięki temu, że używasz obiektu DataSet istnieje prostszy sposób na wykonanie tychsamych czynności.W wierszach od 17.do 22.informacje z obiektu DataSet są wiązane z dwomaróżnymi elementami sterującymi DataGrid zdefiniowanymi na naszej przykładowej stronie (zachwilę dowiesz się, dlaczego wykorzystywane są dwa obiekty).Wyniki wykonania tej stronyASP.NET przedstawiłem na rysunku 11.12Rysunek 11.12.Prezentacja relacyjnych danych XML przy wykorzystaniu obiektówXmlDataDocument oraz DataSetZaraz& ale na rysunku widoczne są dwie tabele, a dysponujemy tylko jednym plikiem XML.Cosię zatem stało? Otóż środowisko.NET odczytała schemat XML i zauważyła, że dane mogą zostać przedstawionew sposób relacyjny.Konkretnie rzecz biorąc, wydzielone i umieszczone w odrębnej tabeli zostałyinformacje o autorze.Zrodowisko.NET automatycznie wygenerowała także kolumnę kluczaobcego, która połączyła obie tabele! W obu elementach kontrolnych DataGrid możesz zobaczyćdane przedstawione w bardziej tradycyjny sposób.Ale w jaki sposób obiekt DataSet określił strukturę danych bez wykorzystania schematu? Wrzeczywistości jest to całkiem proste:" każdy element zawierający atrybuty staje się tabelą," każdy element zawierający inne elementy staje się tabelą," jeśli istnieje kilka (co najmniej dwa) elementy o tych samych nazwach, to stają się onetabelą," wszystkie elementy należące bezpośrednio do głównego elementu pliku (jegobezpośrednie elementy podrzędne), stają się tabelami.Wszystkie pozostałe dane stają się kolumnami.Po określeniu struktury, wszelkie dane XMLodpowiadające kolumnom zostają dodane do obiektu DataSet jako jego wiersze.Jednak czy w rzeczywistości są to dane relacyjne? Co się stanie gdy do pliku XML dodamykolejny węzeł book zawierający informacje o autorze podane w jednym z już istniejącychwęzłów? Na rysunku 11.13 przedstawiłem dane jakie zostaną wygenerowane w takiej sytuacji, wformie, w jakiej zostałyby one zaprezentowane przez elementy kontrolne DataGrid.genre style title book_Id pricenovel hardcover The Handmaid s Tale 0 19.95novel paperback The Poisonwood Bible 1 11.99novel paperback The Poisonwood Bible 2 13.99first-name last-name book-IdMargaret Atwood 0Barbara Kingsolver 1Barbara Kingsolver 2Rysunek 11.13.Dodawanie kolejnych danych relacyjnychO rany! Ale to przecież nie jest to o co chodziło.Mechanizmy ASP.NET nie wykryły, że istniejejuż autor Barbara Kingsolver i dodały nowy rekord do tabeli autorów.Próba stworzenia kluczagłównego składającego się z kolumn first-name oraz last-name spowoduje wystąpieniebłędów.Niestety nie ma prostego sposobu rozwiązania tego problemu.Aby poprawnie dodaćdane, konieczna by była ręczna aktualizacja klucza głównego i usunięcie niepotrzebnego wiersza ztabeli autorów.Jednak bez względu na to ograniczenie, możliwość reprezentacji danych w formie obiektówDataSet oraz w formie danych XML jest niezwykle przydatna i użyteczna.Informacje relacyjnemogą być tworzone w formie danych XML i przekazywane do obiektu DataSet w celu zapisaniaich w bazie danych, lub w drugim kierunku  odczytane z bazy danych i zapisane w pliku XMLw celu ich przesłania.Zgodnie z tym czego dowiedziałeś się w kilku ostatnich rozdziałach, zapis danych w formierelacyjnej jest bardzo często spotykaną i efektywną metodą reprezentacji informacji, a XML bezwątpienia doskonale się do tego celu nadaje.Połączone możliwości klas XmlDataDocument oraz DataSet umożliwiają dostęp i operowanie na danych relacyjnych pochodzących z dowolnegozródła.To nie jest ASP!Jeśli znasz tradycyjną technologię ASP, to informacje zawarte w tym rozdziale mogą stanowić dlaCiebie całkowitą nowość, gdyż obsługa języka XML niemal w ogóle nie była w niej dostępna.Niebyło żadnych wbudowanych obiektów służących do obsługi danych tego typu, a niejednokrotniejedyną możliwością wykorzystania XML-a była implementacja pełnego modelu obiektówdokumentu XML (które niewątpliwie nie była łatwym i przyjemnym rozwiązaniem).Na szczęście środowisko.NET (a zatem także ASP.NET) dysponuje w pełni zintegrowanymimożliwościami obsługi języka XML.Dostępne są także dwa różne sposoby wykorzystania danychXML  za pośrednictwem ADO.NET oraz architektury XML.Niestety ta nowa architektura ma bardzo mało wspólnego z wcześniej stosowanymi metodamiobsługi XML-a.Oznacza to że używane metodologie są zupełnie nowe i ich poznanie będziewymagało nieco czasu.Na szczęście ASP.NET udostępnia dobrze zdefiniowane klasy i obiektystanowiące spójny model programistyczny, które znacznie ułatwią naukę [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • funlifepok.htw.pl
  •