baze podataka - lekcija 08.pdf

  • Upload
    asxov

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 baze podataka - lekcija 08.pdf

    1/171

    POVEZIVANJE WINDOWS FORMS I ASP.NET KONTROLA I PODATAKAKORIENJEM C# PROGRAMSKOG JEZIKA I ADO.NET-A

    Ciljevi lekcije

    Upoznati se sa osnovama mehanizma jednostavnog povezivanja podataka sa Windows Formskontrolama

    Upoznati se sa osnovama mehanizma sloenog povezivanja podataka sa Windows Forms kontrolama Upoznati se sa osnovama mehanizma jednostavnog povezivanja podataka sa ASP.NET kontrolama Upoznati se sa osnovama mehanizma sloenog povezivanja podataka sa ASP.NET kontrolama

    NEOPHODNO PREDZNANJE

    Neophodno predznanje

    Rad u Windows okruenju Relacione baze podataka Osnove programskog jezika C# Osnove ADO.NET-a

    UVOD

    Gotovo sve aplikacije koje se mogu nazvati znaajnim koriste podatke u nekom obliku. Prilikom kreiranjaovakvih aplikacija neophodno je posedovati efikasne mehanizme za skladitenje, pribavljanje i manipulacijunad podacima. Ukoliko se pribavljeni podaci prikazuju korisnicima kroz kontrole korisnikog interfejsaaplikacije, neophodno je posedovati intuitivne naine za prikazivanje podataka koji e omoguiti korisnicimada na lak i efikasan nain manipuliu podacima.

    .NET platforma poseduje predefinisani skup kontrola koje je mogue koristiti za prikazivanje i manipulacijunad podacima. Ove kontrole ugraene su u Windows Forms i ASP.NET interfejse za razvoj desktop i Webaplikacija. Ugraene kontrole omoguavaju projektantima desktop i Web aplikacija relativno jednostavan nainkreiranja korisnikog interfesja koji ima mogunost povezivanja sa bazom podataka.

    Povezivanje korisnikog interfejsa tj kontrola od kojih je korisniki interfejs izgraen, je jedan od problemakoji su projektanti aplikacija u prolosti reavali na razliite naine. Bilo je neophodno kreirati konekciju kabazi podataka i oitati podatke, a zatim razviti programski kod koji bi grafiki prikazao pribavljene podatke ilipopuniti kontrole koje se prikazuju korisnicima. Programski kod razvijen na ovaj nain morao je biti razliit uzavisnosti od posmatrane situacije i potreba korisnika. Takoe, ukoliko se korisnicima dozvoli mogunostizmene pribavljenih podataka, bilo je neophodno razviti programski kod koji bi pribavljao izmenjene podatke izdelova korisnikog interfejsa, skladitio te podatke u memorijske strukture na klijentskom raunaru i vrio upisizmenjenih podataka u bazu podataka. Ovakav pristup zahtevao je mnogo programskog koda koji se estoponavljao i bio podloan grekama.

  • 8/14/2019 baze podataka - lekcija 08.pdf

    2/172

    Predefinisani skup kontrola ugraen u .NET platformu enkapsulira prethodno opisani proces i smanjujekoliinu programskog koda koji je potrebno razviti. Deo koda smeten je u kontrole sa kojima se povezujupodaci i koje prikazuju podatke, dok je ostatak koda smeten u objekte koji korisnicima nisu vidljivi i kojiolakavaju povezivanje podataka i kontrola. .NET platforma takoe uvodi obrasce po kojima se razvijaprogramski kod kojim se vri lako povezivanje podataka sa kontrolama koje ih prikazuju korisnicima.

    POVEZIVANJE PODATAKA SA WINDOWS FORMS KONTROLAMA

    Veinu kontrola ugraenih u .NET platformu je mogue povezati sa podacima. Ovakvo ponaanje posledica jeinjenice da su sve Windows Forms kontrole izvedene iz klase Control koja implementiraIBindableComponent interfejs. Svaka kontrola koja implementira IBindableComponent interfejs posedujekolekciju objekata klase Binding i naziva se DataBindings. Pojedine kontrole poseduju sloenije mehanizmepovezivanja sa podacima. Dodatna funkcionalnost ogleda se kroz dodatne atribute lanove klase poput

    DataSource, DataMember, DisplayMemberi ValueMemberatribute.

    Kako je ranije naglaeno, povezivanje sa podacima u .NET platformi predstavlja mehanizam za automatskopovezivanje i sinhronizovanje podataka koji su uskladiteni u operativnoj memoriji sa kontrolama korisnikoginterfejsa koje prikazuju podatke. Korienjem ovog mehanizma mogue je povezati kontrolu sa podacima i upotpunosti prepustiti kontroli upravljanje nad prikazom podataka. Prilikom korienja ovog mehanizmaneophodno je sagledati pravce toka podataka i vremenske trenutke kada se zapravo prenose podaci. Ukoliko jeprenos podataka jednosmeran, podaci se prenose od izvora podataka ka kontroli iji se atributi popunjavajupribavljenim podacima. Ukoliko je prenos podataka dvosmeran, izmenjene vrednosti atributa kontrola aurirajuvrednosti podataka u odgovarajuem izvoru podataka. Veina mehanizama .NET platforme za povezivanjekontrola sa podacima je dvosmerna. Dvosmerni mehanizmi povezivanja kontrola sa podacima omoguava da seauriranje pribavljenih podataka vri automatski tj bez potrebe za razvijanjem dodatnog programskog koda kojibi vrio auriranje podataka.

    Kako bi mehanizam koji povezuje podatke i kontrole bio pokrenut, neophodno je postojanje programskog kodakoji e pokrenuti funkcionisanje mehanizma. Pokretamehanizma moe biti:

    Izvrenje linije koda koja uvodi povezivanje kontrole i podataka Izvrenje linije koda koja osveava kontrolu, izvor podataka ili sam mehanizam povezivanja Izvrenje dogaaja koji je pokrenut zbog promena u izvoru podataka ili u kontroli

    Postoje dva primarna oblika povezivanja kontrola .NET platforme sa izvorima podataka: jednostavno

    povezivanje (eng. simple data binding) i sloeno povezivanje (eng. complex data binding).

    JEDNOSTAVNO POVEZIVANJE WINDOWS FORMS KONTROLA SA PODACIMA

    Jednostavno povezivanje kontrole sa izvorom podataka vri mapiranje atributa kontrole na atribut izvorapodataka. Primer ovakvog povezivanja bie prikazan u nastavku na primeru povezivanja ComboBoxkontrole

    sa tabelom RADNIK baze podataka PREDUZECE. ComboBoxobjekat poseduje DisplayMemberatribut kojiodreuje koji e atribut iz izvora podataka kontrola koristiti za prikazivanje svake od stavki. Mogue je odreditii ValueMemberatribut ComboBoxobjekta. Ovaj atribut sadri dodatne informacije koje se vezuju za svakuod stavki prikazanih u ComboBoxobjektu. Obino se za svaku prikazanu stavku ComboBoxobjekta vezuje

  • 8/14/2019 baze podataka - lekcija 08.pdf

    3/173

    primarni klju ili referenca na objekat kada bi se svaka od stavki mogla jedinstveno identifikovati u izvorupodataka radi dalje manipulacije nad podacima.

    Jednostavno povezivanje kontrola sa podacima

    ComboBoxc = newComboBox();

    OleDbConnectionconn = newOleDbConnection();

    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\PREDUZECE.mdb";

    StringstrSQL = "Select * from RADNIK";

    OleDbCommandcomm = newOleDbCommand(strSQL, conn);

    OleDbDataAdapteradapter = newOleDbDataAdapter(comm);

    DataSetds = newDataSet();

    try

    {

    conn.Open();

    adapter.Fill(ds, "Radnik");

    conn.Close();

    c.DataSource = ds.Tables["Radnik"];

    c.DisplayMember = "Ime";

    c.ValueMember = "MatBr";

    c.DropDownStyle = ComboBoxStyle.DropDownList;

    }

    catch(Exceptionexc){

    //obrada izuzetka}

    U ovom primeru DataSourceatribut ComboBoxobjekta je tabela Radnik koja se nalazi u DataSetobjektu ds.Atributu DisplayMember ComboBox objekta je dodeljeno ime atributa (u ovom sluaju ime kolone tabeleRadnik) ije e vrednosti biti proitane iz svakog reda tabele izvora podataka i prikazane u ComboBoxkontrolikao tekst. Atribut ValueMember ComboBoxobjekta ukazuje na atribut MatBr tabele Radnik, koji je primarniklju, kako bi odgovarajui red tabele Radnik mogao da bude selektovan kada korisnik izabere neku od stavki

    ComboBoxobjekta.

  • 8/14/2019 baze podataka - lekcija 08.pdf

    4/174

    SLOENO POVEZIVANJE WINDOWS FORMS KONTROLA SA PODACIMA

    Sloeno povezivanje kontrole sa izvorom podataka je mehanizam koji povezuje kontrole sa kolekcijamapodataka. Kontrole koje se povezuju sa podacima ovim mehanizmom imaju mogunost prikaza kolekcijapodataka. Najee se koriste kontrole koje imaju mogunost tabelarnog prikaza podataka. DataGridViewkontrola pripada ovoj grupi kontrola.

    DataGridView kontrola pripada Windows Forms prostoru imena. Ova kontrola prikazuje podatke koji su

    vezani za nju u tabelarnom obliku. Ova kontrola sastoji se od redova i kolona pri emu presek svakog reda ikolone predstavlja eliju. elija je osnovna jedinica predstavljanja podataka u kontroli. Izgled i ponaanje elije

    je mogue prilagoditi potrebama aplikacije korienjem atributa i dogaaja koje kontrola poseduje.DataGridView poseduje posebne elije u zaglavljima redova i kolona. elije smetene u zaglavljima suposebno grafiki naznaene i ukazuju na mod rada kontrole poput sortiranja, auriranja i selekcije podataka ilidodavanja novog reda. elije mogu biti razliitih tipova ak i u istoj koloni ukoliko podaci nisu vezani zakontrolu, to u naem primeru nee biti sluaj. U nastavku e biti prikazan programski kod koji vri vezivanjepodataka iz tabele RADNIK baze podataka PREDUZECE za DataGridViewkontrolu.

    Sloeno povezivanje kontrola sa podacima

    DataGridViewdgv = newDataGridView();

    OleDbConnectionconn = newOleDbConnection();

    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\PREDUZECE.mdb";

    StringstrSQL = "Select * from RADNIK";

    OleDbCommandcomm = newOleDbCommand(strSQL, conn);

    OleDbDataAdapteradapter = newOleDbDataAdapter(comm);

    DataSetds = newDataSet();

    try{

    conn.Open();

    adapter.Fill(ds, "Radnik");conn.Close();

    dgv.DataSource = ds.Tables["Radnik"];

    dgv.Width = this.Width;

    this.Controls.Add(dgv);

    }

    catch(Exceptionexc){

    //obrada izuzetka}

  • 8/14/2019 baze podataka - lekcija 08.pdf

    5/175

    Prikazani primer najei je sluaj upotrebe DataGridViewkontrole. Kako je ranije reeno, DataGridViewkontrola kao izvor podataka koristi kolekcije podataka. Primer ovakvog izvora podataka je DataSetobjekat.Iako DataSetobjekat moe sadrati vie tabela, od kojih svaka predstavlja kolekciju podataka, DataGridViewkontrola je projektovana tako da u jednom trenutku moe prikazivati samo jednu od kolekcija koje sadrepodatke. Na primer, svaka od tabela u DataSet objektu predstavlja kolekciju podataka. Ukoliko DataSetposeduje vie tabela, DataGridView ima mogunost jednovremenog prikaza samo jedne od tabelaposmatranog DataSetobjekta.

    DataGridView dozvoljava projektantima aplikacija odreivanje nivoa interakcije korisnika sa podacima tj

    projektanti aplikacija odreuju da li

    e korisnici imati mogu

    nost auriranja, brisanja i dodavanja podataka.Podrazumevane karakteristike DataGridView kontrole dozvoljavaju korisnicima da auriraju podatke u

    pojedinanim elijama, da selektuju redove i briu ih korienjem Delete tastera na tastaturi i da dodaju novired korienjem poslednjeg prikazanog praznog reda kontrole. Da bi se korisnicima zabranilo dodavanje novogreda i brisanje selektovanog reda potrebno je podesiti atribute AllowUserToAddRows iAllowUserToDeleteRowsna vrednost false, respektivno. Takoe, mogue je zabraniti dodavanje novog reda,brisanje selektovanog reda i auriranje podataka postavljanjem vrednost ReadOnly atributa kontrole navrednost true. DataGridViewkontroli je mogue dinamiki dodavati kolone i redove. Da bi se dodala novakolona u DataGridView kontrolu neophodno je definisati templejt elija kolone. Templejt elija koloneodreuje tip koji e biti korien za eliju nove kolone svaki put kada se u kontrolu dodaje novi red. Svi tipovielija izvedeni su iz DataGridViewCellklase i mogu biti tekstualna polja, padajue liste, linkovi, dugmii i

    slike. Na osnovu tipova elija mogue je dinamiki kreirati redove i dodavati ih u DataGridViewkontrolu. Unastavku e biti dat primer programskog koda koji vri kreiranje DataGridViewkontrole i u kontrolu dodajejednu kolonu a zatim dodaje jedan red.

    Korienje DataGridView kontrole

    DataGridViewdgv = new DataGridView();

    DataGridViewTextBoxColumnnewCol = newDataGridViewTextBoxColumn();

    newCol.HeaderText = "tekstualno polje";

    dgv.Columns.Add(newCol);

    DataGridViewRownewRow = newDataGridViewRow();

    DataGridViewComboBoxCellcomboCell = newDataGridViewComboBoxCell();

    comboCell.Items.Add("Crna");

    comboCell.Items.Add("Bela");

    comboCell.Value = "Bela";

    newRow.Cells.Add(comboCell);

    dgv.Rows.Add(newRow);

  • 8/14/2019 baze podataka - lekcija 08.pdf

    6/176

    Prilikom izmene sadraja elija DataGridViewkontrole od velikog je znaaja da li je kontrola povezana sapodacima. Ukoliko je povezivanje izvreno, svi izmenjeni podaci e automatski biti zapameni u izvorupodataka (u bazi podataka) iz kojeg su pribavljeni. Ukoliko se u eliji nalazi link ili dugme, korisnici nee biti umogunosti da menjaju sadraj elije jer ove kontrole ne dozvoljavaju promene njihovog sadraja korisnicima.Ukoliko se u eliji nalazi padajua lista, pod izmenom sadraja smatra se selektovanje neke druge stavke uodnosu na trenutno selektovanu ili prepisivanje trenutno prikazanog teksta u stavki padajue liste (da biprepisivanje sadraja trenutno selektovane stavke bilo mogue, DisplayStyleatribut padajue liste mora imati

    vrednost ComboBox).

    POVEZIVANJE PODATAKA SA ASP.NET KONTROLAMA

    Osnovni principi povezivanja ASP.NETkontrola sa podacima su naizgled slini povezivanju Windows Formskontrola sa podacima: odrediti koji je izvor podataka i postaviti ga za izvor podataka kontrole. Iako naizgled isti

    kao kod Windows Formskontrola, mehanizam povezivanja ASP.NETkontrola sa podacima se fundamentalnorazlikuje. Kod Windows Forms kontrola, ovaj mehanizam kreira direktnu vezu izmeu kontrole i bazepodataka. Ukoliko korisnik izmeni podatke prikazane u kontroli, podaci u bazi podataka za koju je kontrolavezana se automatski menjaju. Takoe, ukoliko se podaci u bazi podataka izmene dok je kontrola prikazanakorisniku, podaci koje kontrola prikazuje e se automatski izmeniti. Ovakav nain povezivanja kontrola i izvorapodataka nije efikasan kod aplikacija koje koriste Internet kao svoje radno okruenje jer je neefikasno odravatidirektnu vezu sa bazom podataka korienjem Interneta.

    Povezivanje ASP.NET kontrola sa podacima ima malo slinosti sa prethodno opisanim mehanizmom.

    Mehanizam povezivanja ASP.NET kontrola sa podacima je jednosmeran podaci se prenose iz izvorapodataka (baze podataka) ka kontroli. Nakon prenosa podataka, objekti koji predstavljaju memorijskureprezentaciju podataka se odbacuju i kreirana stranica se alje klijentu. Ukoliko korisnik izmeni podatke kojeprikazuje kontrola, ASP.NET aplikacija moe snimiti izmenjene podatke ali se snimanje podataka needesitiautomatski.

    ASP.NETposeduje dva mehanizma povezivanja kontrola sa podacima: jednostavno povezivanje (povezivanjepojedinanih vrednosti) i sloeno povezivanje (povezivanje kolekcija podataka). Prvi tip povezivanja je daleko

    jednostavniji ali sloeno povezivanje predstavlja osnovu za korienje naprednih ASP.NETkontrola.

  • 8/14/2019 baze podataka - lekcija 08.pdf

    7/177

    JEDNOSTAVNO POVEZIVANJE PODATAKA SA ASP.NET KONTROLAMA

    Jednostavno povezivanje kontrola sa podacima koristi se za dodavanje informacija bilo gde na ASP.NETstranici. Jednostavno povezivanje ne mora imati nikakve veze sa ADO.NET-om. Ono omoguava da sevrednosti promenljivih, atributa ili izraza dinamiki dodaju bilo gde na stranici. Kod jednostavnog povezivanja,programski kod koji vri povezivanje se dodaje direktno u HTML tekst stranice.

    Nakon specificiranja povezivanja neophodno je pokrenuti mehanizam povezivanja. Mehanizam povezivanjakontrola sa podacima pokree se pozivom funkcije DataBind(). Ova funkcija predstavlja jednu od osnovnihfunkcionalnosti svih kontrola i ugraena je u klasu Controliz koje su izvedene sve kontrole. Mogue je pozvatiDataBind()funkciju istovremeno za sve kontrole na stranici pozivom DataBind() funkcije Pageobjekta kojipredstavlja trenutnu stranu. Obino se svi pozivi DataBind() funkcije deavaju u Page.Load() funkciji kojaprethodi prikazu stranice korisnicima. Ukoliko se poziv funkcije DataBind()izostavi, ASP.NET e ignorisatisva povezivanja kontrola sa podacima.

    Jednostavno povezivanje se moe posmatrati i kao varijanta kreiranja dinamikog teksta. Da bi se koristiloneophodno je dodati specijalne izraze u HTML tekst stranice. Ovi izrazi imaju sledei format:

    Sintaksa lii na skript jezike, ali ovo nije skript jezik. U ovaj deo je mogue ubaciti jedino validne izraze zajednostavno povezivanje. Bilo kakav programski kod bi na ovom mestu doveo do greke prilikom izvrenjastranice. U nastavku e biti prikazan primer korienja jednostavnog povezivanja.

    Jednostavno povezivanje kontrola i podataka

    public partial class_Default: System.Web.UI.Page

    {

    protected intpromenljiva;

    protected voidPage_Load(objectsender, EventArgse)

    {

    promenljiva = 123;

    this.DataBind();

    }}

  • 8/14/2019 baze podataka - lekcija 08.pdf

    8/178

    Pored postavljanja statikog teksta, jednostavno povezivanje je mogue iskoristiti kako bi se na straniciprikazali atributi neke od klasa. U nastavku e biti prikazan primer koji prikazuje atribut pod nazivom URLnove stranice pod nazivom URLPage.

    Jednostavno povezivanje kontrola sa atributima klasa

    public partial classURLPage: System.Web.UI.Page

    {

    public stringURL;protected voidPage_Load(objectsender, EventArgse)

    {

    URL = Server.MapPath("Water lilies");

    this.DataBind();

    }

    }

  • 8/14/2019 baze podataka - lekcija 08.pdf

    9/179

    SLOENO POVEZIVANJE PODATAKA SA ASP.NET KONTROLAMA

    Sloeno povezivanje predstavlja osnovu za korienje naprednih ASP.NET kontrola.

    Sloeno povezivanje omoguava da se na stranici prikau podaci iz itave tabele baze podataka. Za razliku odjednostavnog povezivanja, sloeno povezivanje zahteva upotrebu specijalnih kontrola koje podravaju ovakavvid povezivanja. Obino se koriste CheckBoxList objekti ili ListBox objekti ali se mogu koristi i dalekosofisticiranije kontrole poput GridView kontrole. Kontrolu koja podrava sloeni nain povezivanja sapodacima je mogue razlikovati od ostalih po tome to poseduje DataSourceatribut. Kao i kod jednostavnogpovezivanja, kontrole koje podravaju sloeni nain povezivanja ne moraju podatke pribavljati iz baze podatakaniti moraju koristiti ADO.NET objekte. Ove kontrole je recimo mogue povezati sa nizom podataka.

    Nakon specificiranja povezivanja neophodno je pokrenuti mehanizam povezivanja. Mehanizam povezivanjakontrola sa podacima pokree se pozivom funkcije DataBind(). Ova funkcija predstavlja jednu od osnovnihfunkcionalnosti svih kontrola i ugraena je u klasu Controliz koje su izvedene sve kontrole. Mogue je pozvatiDataBind()funkciju istovremeno za sve kontrole na stranici pozivom DataBind() funkcije Page objekta kojipredstavlja trenutnu stranu. Obino se svi pozivi DataBind() funkcije deavaju u Page.Load() funkciji kojaprethodi prikazu stranice korisnicima. Ukoliko se poziv funkcije DataBind()izostavi, ASP.NET e ignorisatisva povezivanja kontrola sa podacima.

    Sloeno povezivanje kontrola sa podacima podrazumeva korienje podskupa kontrola koje podravaju ovakavnain povezivanja. Ove kontrole spadaju u grupu tzv. list kontrola. U ovu grupu kontrola spadaju ListBox,DropDownList, CheckBoxList, RadioButtonList, HtmlSelect, GridView, DetailsView i FormView.ListBox, DropDownList, CheckBoxList i RadioButtonList kontrole omoguavaju povezivanje sa jednom

    kolonom podataka. HtmlSelect kontrola u osnovi funkcionie na isti nain kao i ListBox kontrola ali jezadrana zbog lakeg unapreivanja starih APS stranica. GridView, DetailsViewi FormViewsu kontrole koje

    mogu prikazivati vie od jedne kolone podataka jednovremeno. Pri korienju kontrola koje se povezuju sajednom kolonom podataka, povezivanje podataka se vri postavljanjem vrednosti odgovarajuih atributakontrola. Vrednosti atributa je mogue postaviti statiki u .aspx stranici ili dinamiki tj korienjem

  • 8/14/2019 baze podataka - lekcija 08.pdf

    10/1710

    programskog koda koji pristupa atributima kontrole i postavlja njihove vrednosti. U nastavku e biti prikazanprogramski kod koji vri povezivanje ListBoxkontrole sa ArrayListobjektom i izgled .aspx stranice nakonizvrenja koda. ArrayList klasa pripada System.Collections prostoru imena. Objekti klase ArrayListpredstavljaju kolekciju objekata. Ova kolekcija moe posedovati bilo koji objekat izveden iz klase object.

    Sloeno povezivanje kontrole sa ArrayList objektom

    public partial class_Default: System.Web.UI.Page

    {

    protected voidPage_Load(objectsender, EventArgse)

    {

    ArrayListaList = newArrayList();

    aList.Add("Crna");

    aList.Add("Bela");

    aList.Add("Crvena");

    aList.Add("Plava");

    ListBoxlBox = new ListBox();

    lBox.DataSource = aList;

    this.FindControl("form1").Controls.Add(lBox);

    this.DataBind();

    }

    }

    Kontrole iz grupe listkontrola je mogue povezati sa podacima korienjem ADO.NET-a. U ovim situacijama

    povezivanje se obino odigrava u tri koraka. Najpre se kreira objekat koji e predstavljati izvor podataka. Ovoje obino objekat klase DataReader ili DataSet. U primeru koji e biti prikazan u nastavku, objekat klaseDataSet e biti kreiran i popunjen dinamiki tj korienjem programskog koda. Zatim je potrebno povezatikontrolu, koja e u primeru biti ListBox, sa izvorom podataka. Na kraju, neophodno je aktivirati povezivanjeeksplicitnim pozivom funkcije DataBind().

  • 8/14/2019 baze podataka - lekcija 08.pdf

    11/1711

    Sloeno povezivanje korienjem ADO.NET-a

    public partial class_Default: System.Web.UI.Page

    {

    protected voidPage_Load(objectsender, EventArgse)

    {

    //lista

    ListBoxlBox = newListBox();

    //kreiranje izvora podataka

    DataSetds = newDataSet();

    //dodavanje nove tabele u DataSet objekat

    ds.Tables.Add("Boje");

    //dodavanje kolone u tabelu

    ds.Tables["Boje"].Columns.Add("Naziv");

    //kreiranje i dodavanje redova

    DataRowdr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Bela";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Crna";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Zelena";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Pink";

    ds.Tables["Boje"].Rows.Add(dr);

    //povezivanje kontrole i izvora podataka

    lBox.DataSource = ds.Tables["Boje"];

  • 8/14/2019 baze podataka - lekcija 08.pdf

    12/1712

    lBox.DataTextField = "Naziv";

    //dodavanje liste na stranicu

    this.FindControl("form1").Controls.Add(lBox);

    //povezivanje kontrola i podataka

    this.DataBind();

    }

    }

    GridView, DetailsViewi FormsViewspadaju u grupu sloenijih ASP.NET kontrola. Razvijene su specijalnoza potrebe povezivanja sa podacima tj korienjem sloenog mehanizma povezivanja. Upotreba ovih kontrola isloenog mehanizma povezivanja bie predstavljena na primeru GridView kontrole. GridView kontrolu jemogue dodati direktno u HTML tekst .aspx stranice ili dinamiki, korienjem programskog koda. Kako jeranije naglaeno, GridView pripada grupi kontrola koje imaju mogunost prikazivanja vie kolonaistovremeno. Sve kontrole koje pripadaju ovoj grupi poseduju DataSourceatribut koji se koristi za povezivanjeza izvorom podataka. U nastavku e biti prikazan primer korienja GridViewkontrole i njeno povezivanje sa

    podacima sadranim u DataSetobjektu. DataSetobjekat se u ovom primeru kreira dinamiki tj kori

    enjemprogramskog koda.

    Sloeno povezivanje korienjem GridView kontrole

    public partial class_Default: System.Web.UI.Page

    {

    protected voidPage_Load(objectsender, EventArgse)

    {

    //kreiranje izvora podataka

    DataSetds = newDataSet();

  • 8/14/2019 baze podataka - lekcija 08.pdf

    13/1713

    //dodavanje nove tabele u DataSet objekat

    ds.Tables.Add("Boje");

    //dodavanje kolone u tabelu

    ds.Tables["Boje"].Columns.Add("Naziv");

    ds.Tables["Boje"].Columns.Add("RedniBroj");

    //kreiranje i dodavenje redova

    DataRowdr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Bela";

    dr["RedniBroj"] = "1";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Crna";

    dr["RedniBroj"] = "2";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Zelena";

    dr["RedniBroj"] = "3";

    ds.Tables["Boje"].Rows.Add(dr);

    dr = ds.Tables["Boje"].NewRow();

    dr["Naziv"] = "Pink";

    dr["RedniBroj"] = "4";

    ds.Tables["Boje"].Rows.Add(dr);

    //povezivanje kontrole i izvora podataka

    grid.DataSource = ds;

    //povezivanje kontrola i podataka

    grid.DataBind();

    }

    }

  • 8/14/2019 baze podataka - lekcija 08.pdf

    14/1714

    ASP.NET stranica:

    Izgled stranice:

    DataSet objekat korien u prethodnom primeru je popunjen podacima korienjem programskog koda tj

    runo. Pored ovakvog vida popunjavanja izvora podataka, mogu

    e je koristiti i ADO.NET. Primer kori

    enjaADO.NET objekata za korienje sloenog mehanizma povezivanja GridView kontrole sa podacima bie

    prikazan u nastavku.

  • 8/14/2019 baze podataka - lekcija 08.pdf

    15/1715

    Popunjavanje DataSet objekta podacima iz baze podataka

    public partial class_Default: System.Web.UI.Page

    {

    protected voidPage_Load(objectsender, EventArgse)

    {

    OleDbConnectionconn = newOleDbConnection();

    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\PREDUZECE.mdb";

    StringstrSQL = Select * from RADNIK;

    OleDbCommandcomm = newOleDbCommand(strSQL, conn);

    OleDbDataAdapteradapter = newOleDbDataAdapter(comm);

    DataSetds = newDataSet();

    try

    {

    conn.Open();

    adapter.Fill(ds, Radnik);

    conn.Close();

    grid.DataSource = ds;

    grid.DataBind();

    }

    catch(Exceptionexc)

    {

    //obrada izuzetka

    }

    }}

  • 8/14/2019 baze podataka - lekcija 08.pdf

    16/1716

    PITANJA

    Pokuajte da odgovorite na sledea pitanja. Nakon toga pogledajte ponovo materijal u ovoj lekciji. Za svakitaan odgovor dodelite sebi 2 poena, za delimino taan 1, a za netaan 0. Pogledajte ponovo one delove lekcijeza koje ste imali 0 poena.

    1. ta je povezivanje kontrola sa podacima u .NET platformi?2. ta moe biti pokretamehanizma za povezivanje kontrola sa podacima?3. Koji su primarni oblici povezivanja Windows Forms kontrola .NET platforme sa podacima?4. Na koji nain funkcionie jednostavno povezivanje Windows Forms kontrole sa izvorom podataka?5. Ukoliko se vri povezivanje podataka sa ComboBox kontrolom, koji atribut ComboBox kontrole

    odreuje koji e atribut izvora podataka popuniti podacima stavke kontrole?6. ta omoguava sloeno povezivanje Windows Forms kontrola sa podacima?7. Na koji nain DataGridView kontrola prikazuje podatke koji su vezani za nju?8. Koja klase se najee koristi kako bi se instancirali objekti koji predstavljaju izvore podataka koriene

    pri sloenom povezivanju?9. Opisati razlike povezivanja Windows Forms kontrola sa izvorima podataka u odnosu na povezivanje

    ASP.NET kontrola sa izvorima podataka.10.Da li se snimanje izmenjenih podataka koje prikazuju ASP.NET kontrole deava automatski?11.Navesti tipove mehanizama povezivanja ASP.NET kontrola sa podacima.12.emu slui jednostavno povezivanje ASP.NET kontrola sa podacima?13.ta omoguava sloeno povezivanje ASP.NET kontrola sa podacima?14.Koja funkcija pokree mehanizam sloenog povezivanja ASP.NET kontrola sa podacima?15.Prikazati format specijalnih izraza koji se ugrauju direktno u HTML kod stranice i koji omoguavaju

    korienje jednostavnog povezivanja ASP.NET kontrola sa podacima?16.Kako se naziva grupa kontrola koja omoguava korienje sloenog mehanizma povezivanja ASP.NET

    kontrola sa podacima i koje kontrole spadaju u ovu grupu?17.Koja je razlika izmeu GridView i ListBox kontrole u pogledu mogunosti prikaza podataka sa kojima

    su povezane?

    ZADATAK

    ADO.NET

    1. Korienjem ADO.NET-a izvriti povezivanje Windows Forms ComboBox kontrole sa podacima oradnicima. Svaka stavka ComboBox kontrole treba da prikazuje ime i prezime radnika, dok jeValueMember atribut ComboBox kontrole povezan sa matinim brojevima radnika. Podaci o radnicimauvaju se u tabeli RADNIK baze podataka PREDUZECE.

    2. Korienjem ADO.NET-a izvriti povezivanje ASP.NET GridView kontrole sa podacima o lanovimaporodica radnika. GridView kontrola treba da prikae sve podatke o lanovima porodica radnika, kao iime i prezime radnika. Podaci o radnicima i lanovima njihovih porodica uvaju se u tabelamaRADNIK i CLAN_PORODICE baze podataka PREDUZECE, respektivno.

  • 8/14/2019 baze podataka - lekcija 08.pdf

    17/17

    ZADATAK: ADO.NET I APLIKACIJE BAZA PODATAKA

    Kao osnovu projekta potrebno je iskoristiti postojeu bazu podataka PREDUZEE (ova baza podataka je ilakao pratei materijal uz lekcije o SQL-u).

    Zadaci:

    1. Preuzeti MS Access verziju baze podataka PREDUZEE

    2. Korienjem ADO.NET direktnog pristupa podacima, ukoliko postoji, pronai radnika iji je matini broj123456789 i izmeniti njegovo ime na Aleksandar. Za pristup podacima koristiti OLE DB data provider.Podaci o radnicima uvaju se u tabeli RADNIK baze podataka PREDUZECE.

    3. Korienjem ADO.NET-a izvriti povezivanje Windows Forms DataGridView kontrole sa podacima olanovima porodica radnika. DataGridView kontrola treba da prikae sve podatke o lanovima porodicaradnika, kao i ime i prezime radnika. Podaci o radnicima i lanovima njihovih porodica uvaju se u tabelamaRADNIK i CLAN_PORODICE baze podataka PREDUZECE, respektivno.

    Reenja zadataka predati u vidu zip arhive koja sadri 2 projekta. Instalacije za Visual C# Express Edition iVisual Web Developer Express Edition mogu se pronai na adresamahttp://www.microsoft.com/express/vcsharp/ I http://www.microsoft.com/express/vwd/, respektivno.