UWAGA! Promocja dla firm - MICROSOFT OFFICE 365  na 12 miesiecy ZA DARMO! Tylko na CentrumXP.pl!
Wielka promocja Office 365 na CentrumXP.pl!
Do góry Skomentuj

18. Metody dostępu do danych - część 2

18. Metody dostępu do danych - część 2

Autor: Piotr Gaszewski Opublikowano: 9 czerwca 2006 Odsłon: 43 487

W poprzednich rozdziałach kursu omówione zostały niektóre metody prezentowania na stronach internetowych informacji, pobranych z bazy danych. Celem przyświecającym projektantom i twórcom technologii ASP.NET było uczynienie procesu tworzenia aplikacji internetowych możliwie prostym. W rozdziale tym postaram się zaprezentować działanie przykładowych kontrolek, wprowadzonych w najnowszej wersji środowiska .NET Framework, dzięki którym aplikacje internetowe możemy tworzyć szybciej i prościej niż kiedykolwiek dotąd.

Większość tworzonych obecnie aplikacji internetowych w swoim działaniu wykorzystuje bazę danych. Źródłem informacji mogą być zarówno zaawansowane systemy bazodanowe, takie jak: Oracle czy SQL Server, mniejsze bazy z rodzaju MySql’a, czy też w końcu fizyczne pliki umieszczone na dysku, wykorzystujące na przykład format XML. Do operowania na danych pochodzących z wymienionych źródeł programiści ASP.NET 2.0 mogą wykorzystać dwie grupy kontrolek. Pierwsza z nich -  data-source controls – to jak sama nazwa wskazuje obiekty reprezentujące źródła danych. Druga grupa kontrolek pozwala natomiast na prezentowanie na formatce, pobranych z bazy informacji.

Spróbujmy wyświetlić w oknie przeglądarki zawartość tabeli z bazy danych. Wykorzystamy do tego kontrolkę o nazwie GridView. Kontrolka ta umożliwia dynamiczną generację tabeli, odpowiadającej schematowi danych pobranych ze źródła. W ASP.NET 2.0 zastąpiła ona używaną wcześniej powszechnie kontrolkę DataGrid. Kontrolkę typu GridView odnajdziemy w pasku narzędzi w grupie „Data” po przeciągnięciu jej na powierzchnie formatki będziemy musieli wybrać źródło danych. Ponieważ nie zdefiniowaliśmy do tej pory żadnego obiektu tego typu wybieramy opcję „New Data Source”. Na ekranie powinnyśmy wówczas ujrzeć poniższe okienko.

Do wyboru mamy sześć podstawowych źródeł danych:

- AccessDataSource – umożliwiają korzystanie w prosty sposób z informacji, zapisanych w bazach Microsoft Access

- SqlDataSource – umożliwia dostęp do systemów takich jak: MS SQL Server, czy Oracle oraz innych, do których możliwość połączenia gwarantuje platforma .NET

- DataSetDataSource – dane pobierane są z obiektu typu DataSet.

- ObjectDataSource – jako źródła danych wykorzystywane są obiekty biznesowe

- XmlDataSource – umożliwia odczytanie informacji z plików XML

- SiteMapDataSource – daje możliwość wykorzystania jako źródła danych hierarchicznej mapy witryny.

My wybierzemy oczywiście SqlDataSource. Kolejnym krokiem będzie wybranie połączenia z bazą lub zdefiniowanie nowego. Proces ten został omówiony w rozdziale 16. kursu. Następnie możemy zdecydować się na zapisanie parametrów połączenia w pliku konfiguracyjnym aplikacji. Kolejnym krokiem, będzie zdefiniowanie zapytania w języku SQL, pobierającego z bazy odpowiednie dane. Na początku zdecydujmy się na najprostsze: „SELECT * FROM [Customers]”.

Klikamy przycisk „Next”. W oknie, które teraz ujrzymy na ekranie możemy przetestować nasze zapytanie. Jeżeli wszystko przebiegło pomyślnie, po naciśnięciu przycisku „Test Query”, powinniśmy zobaczyć pożądane informacje.

Kończymy edycję obiektów. Na ekranie powinny widoczne być teraz dwa obiekty. Pierwszy z nich, klasy DataView, powinien posiadać widoczne już nazwy kolumn, odpowiadające kolumnom w stosownej tabeli bazy danych. Drugim widocznym na formatce obiektem jest obiekt klasy SqlDataSource.

Po uruchomieniu naszej strony w przeglądarce powinnyśmy otrzymać następujący efekt.

W przypadku wybrania tabeli „Customers” w oknie przeglądarki nie mieszczą się wszystkie wyświetlane wiersze tabeli. Obiekt DataView pozwala w bardzo prosty sposób wprowadzić stronicowanie wyników zapytania. W tym celu w oknie Visual Studio klikamy prawym przyciskiem myszy na obiekcie DataView, wyświetlamy okno „GridView Task”, w którym zaznaczamy opcję: „Enable Paging”. Domyślnie na ekranie wyświetlane będzie teraz jednocześnie tylko dziesięć pierwszych wierszy z tabeli. Chcąc zmienić ich ilość musimy ustawić odpowiednią wartość pola PageSize (na przykład za pośrednictwem okna „Properties”).

Tabela, którą ujrzeliśmy poprzednio na ekranie wyświetla pobrane dane w najprostszy możliwy sposób. Często pracując nad stroną graficzną serwisu internetowego będziemy musieli zmienić wygląd tego obiektu. Oczywiście możemy zrobić to ręcznie, edytując plik w rozszerzeniem *.aspx.. Dzięki Visual Studio możemy jednak wybrać jeden z kilkunastu zdefiniowanych szablonów. W tym celu klikamy ponownie prawym przyciskiem myszy na obiekcie DataView i wybieramy opcję: „Auto Format”. 

Efekt naszej pracy powinien prezentować się następująco:

Kolejną funkcjonalnością, którą udostępnia obiekt DataView, jest możliwość zmiany za jego pośrednictwem zawartości wyświetlanej tabeli. W tym celu musimy ponownie skonfigurować nasze źródło danych (prawy przycisk myszy na obiekcie SqlDataSource1, następnie opcja: Configure Data Source”). W oknie, zatytułowanym „Configure Select Statement” klikamy tym razem na przycisku„Advanced”. Następnie zaznaczamy opcję „Generale INSERT, UPDATE, and DELETE statements”.

Zmodyfikujmy teraz kolejny raz właściwości obiektu DataView w następujący sposób:

AutoGenerateDeleteButton = true

AutoGenerateUpdateButton = true;

Teraz otwierając formatkę w oknie przeglądarki będziemy mogli usuwać i edytować wiersze w tabeli, wykorzystując dwie nowe kolumny, zawierające przyciski „Delete” oraz „Edit”.

Do wstawiania nowych wpisów do tabeli może posłużyć nam kontrolka DetailsView. Podobnie jak poprzednia, daje nam ona możliwość przeglądania zawartości bazy danych, ale także dodawania w prosty sposób nowych wpisów do tabeli. Po przeciągnięciu na formatkę obiektu DetailsView, jako źródło danych podajemy istniejący już obiekt SqlDataSource1. Następnie zaznaczamy opcje „Enable Inserting”. Jest to już cała praca, którą musimy wykonać. Poniżej przytaczam kod, wygenerowany przez Visual Studio.

  <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False"

            BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px"

            CellPadding="3" DataKeyNames="CustomerID" DataSourceID="SqlDataSource1" ForeColor="Black"

            GridLines="Vertical" Height="50px" Width="125px">

            <FooterStyle BackColor="#CCCCCC" />

            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />

            <Fields>

                <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" />

                <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />

                <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />

                <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" />

                <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />

                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />

                <asp:BoundField DataField="Region" HeaderText="Region" SortExpression="Region" />

                <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" />

                <asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country" />

                <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />

                <asp:BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax" />

                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />

            </Fields>

            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />

            <EditRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />

            <AlternatingRowStyle BackColor="#CCCCCC" />

        </asp:DetailsView>

Kontrolka ta wyświetla w tym przypadku na ekranie szczegółowe informacje związane z konkretnym wierszem w bazie danych. Klikając na udostępniany przez nią przycisk „New” możemy także w prosty sposób dodać nowy wpis do bazy.

Zobacz również

Komentarze

robie wszystko krok po krokuw VS2005 a po uruchiomieniu przegladarki nie ma tabeli!! polaczenie z baza jest, grid view jest, sql string jest i buu..szukam dalej czemu tak sie dzieje..
Daniel, 6 września 2006, 15:50
Zapomnialem o jedym czynniku - restart systemu..narazie dziala
Daniel, 6 września 2006, 16:23
Te kontrolki to prawie to samo co C++ Builder z bazami. Tyle że builder miał własną tylko lokalną bazę a tu mamy SQL. Mi wszytko chodzi w Visual Web Developer.
JASIUUUU, 27 czerwca 2007, 23:53
a co z obsluga bledow dla  DetailsView jak wprowadzi sie zle dane program sie sypnie jak z tym sobie poradzic ?

Dawid , 18 maja 2009, 18:41
uzyj validatorow ;)                                    ">                                 ">                                                        
d., 18 stycznia 2010, 18:21
                                ">                                 ">                                                        
d, 18 stycznia 2010, 18:22

Dodaj swój komentarz

Zasady publikacji komentarzyZasady publikacji komentarzy

Redakcja CentrumXP.pl nie odpowiada za treść komentarzy publikowanych na stronach Portalu
i zastrzega sobie prawo do usuwania wypowiedzi, które:

  • zawierają słowa wulgarne, obraźliwe, prowokujące i inne naruszające dobre obyczaje;
  • są jedynie próbami reklamowania stron internetowych (spamowanie poprzez umieszczanie linków);
  • przyczyniają się do złamania prawa bądź warunków licencyjnych oprogramowania (cracki, seriale, torrenty itp.);
  • zawierają dane osobowe, teleadresowe, adresy mailowe lub numery GG;
  • merytorycznie nie wnoszą nic do dyskusji lub nie mają związku z tematem komentowanego newsa, artykułu bądź pliku.

Autor:

Komentarz:

Dodaj komentarz