1 / 44

Razvoj poslovnih aplikacija - vježbe -

Razvoj poslovnih aplikacija - vježbe -. Jelena Zovko 01.04.2014. Korištenje podataka u aplikaciji. SQL Server (ekstenzija *.mdf) Korištenje postojeće baze podataka ili kreiranje nove. 1. Primjer.

tod
Download Presentation

Razvoj poslovnih aplikacija - vježbe -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvoj poslovnih aplikacija- vježbe - Jelena Zovko 01.04.2014.

  2. Korištenje podataka u aplikaciji • SQL Server (ekstenzija *.mdf) • Korištenje postojeće baze podataka ili kreiranje nove

  3. 1. Primjer • Kreirati odgovarajuću bazu podataka (entiteti, atributi i veze) za problem evidentiranja djelatnika i odjela u kojem rade.

  4. Postupak • Kreiranje dokumenta posao.mdf • Definiranje tablica, veza te unos podataka

  5. Postupak • Solution explorer – dodati Service Based Database • Server Explorer • Tables ->Add New Table • Database Diagrams->Add New Diagram

  6. Postupak

  7. Postupak

  8. Postupak • Kreiranje novog izvora podataka – Data Source • Kreiranje odgovarajućeg okruženja: forme

  9. Kreiranje Data Seta • Data->Show Data Sources->Add New Data Source

  10. Rad s bazom • ADO.NET – model za pristupanje podacima • nasljednik prijašnjeg koncepta ADO – ActiveX Data Objects • bitna razlika: nakon pristupanja podacima, veza s bazom se prekida i radi se nad podacima koji su privremeno smješteni u memoriji računala

  11. ADO.NET • dvije središnje komponente: • DataSet • Data Provider

  12. DataSet • sadrži: • DataTable • DataRelation

  13. Data Providers • ADO.NET providers: • Data Provider za SQL Server (System.Data.SqlClient) • Data Provider za OLEDB (System.Data.OleDb) • Data Provider za ODBC (System.Data.Odbc) • Data Provider za Oracle (System.Data.OracleClient)

  14. Data Provider • sadrži: • Connection object (SqlConnection) • Command object (SqlCommand) • DataReader object (SqlDataReader) • DataAdapter object (SqlDataAdapter)

  15. ADO.NET Data Provider Form DataSet DataAdapter Connection Command DataReader

  16. Prikaz podataka • Prikaz podataka iz DataSet-a na formi (prevlačenjem) • Data binding • Prikaz podataka pisanjem koda: • više slogova u tabličnom obliku (DataGrid) • jedan slog (preko TextBox-ova) • jedan atributa (u TextBox)

  17. 2. Primjer • Kreirati aplikaciju s početnom formom (MdiContainer), izbornikom (MenuStrip) te dodatnim formama koje se otvaraju preko kreiranog izbornika • Kreirati Data Set iz baze posao.mdf, ali NE KOPIRATI bazu u projekt

  18. 3. Primjer • Prikazati podatke iz tablice djelatnik prevlačenjem iz Data Source-a

  19. Data Binding • koncept kojim se ostvaruje veza između upravljača na formi i izvora podataka • Izvori podataka: razni (DataSet, DataTable, DataColumn, DataView, DataViewManager...) • Dvije metode data bindinga: • Simple binding - povezivanje jedne vrijednosti na kontrolu • Complex binding - povezivanje skupa vrijednosti na kontrolu

  20. 4. Primjer • Povezati TextBox s bazom posao.mdf tako da se u njemu prikaže naziv odjela.

  21. 5. Primjer • Povezati DateTimePicker upravljač tako da se prikazuje datum zaposlenja djelatnika.

  22. 6. Primjer • Povezati DataGridView s bazom tako da se prikazuje tablica odjel (pomoću binding opcije).

  23. 7. Primjer • Povezati se kodom s bazom posao.mdf te prikazati podatke u DataGrid-u

  24. 1. Korak • dodati odgovarajući namespace • u našem slučaju: using System.Data.SqlClient;

  25. 2. Korak • definiranje stringa za povezivanje (connection string): naziv providera i točna putanja string tekstVeze = "Data Source=.\\SQLEXPRESS; AttachDbFilename = C:\\posao.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True”;

  26. 3. Korak • kreiranje nove instance za SqlConnection pomoću stringa veza koji je prije deklariran: SqlConnection veza= new SqlConnection(tekstVeze); • te otvaranje definirane veze: veza.Open();

  27. 4. Korak • pomoću DataAdapter-a se puni DataTable te se DataTable pridruži DataGridu (koji je stavljen na formu) DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter (“SELECT * FROM Djelatnik”, veza) da.Fill(dt); dataGridView1.DataSource = dt;

  28. 8. Primjer • Prikazati podatke u DataGridView-u o onom djelatniku čija se šifra (ID) unese u TextBox

  29. Rješenje ...povezivanje... int id; id = Convert.ToInt16( textBox1.Text); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter ("SELECT * FROM Djelatnik where ID=" + id, veza); da.Fill(dt); dataGridView1.DataSource = dt;

  30. 9. Primjer • Odabirom naziva odjela iz padajućeg izbornika ComboBox-a prikazuje se šifra tog odjela u TextBox-u

  31. Rješenje ...povezivanje... int id = Convert.ToInt16(comboBox1.SelectedValue); textBox2.Text = id.ToString();

  32. 10. Primjer (dvije tablice) • Prikazati sve podatke o djelatnicima koji rade u odjelu čija se šifra (ID) unese u textBox

  33. 11. Primjer (dvije tablice) • Odabirom naziva odjela iz padajućeg izbornika ComboBox-a prikazuju se svi djelatnici koji rade u tom odjelu +(zajedno s nazivom odjela i njegovom lokacijom) int id = Convert.ToInt16(comboBox1.SelectedValue); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter ("SELECT D.ID, D.Ime,D.Prezime,D.Posao,D.DatumZaposlenja,D.Placa, O.Naziv,O.Lokacija FROM Djelatnik D, Odjel O where D.IDOdjel=O.ID AND IDOdjel=" + id, veza); da.Fill(dt); dataGridView2.DataSource = dt;

  34. 12. Primjer • U listBox-u se nalaze šifre svih odjela te se klikom na neki od njih prikazuju (u GridView-u) svi podaci o tom odjelu.

  35. Rješenje ...povezivanje... int id; id = Convert.ToInt16( listBox1.SelectedValue); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Odjel where ID=" + id, veza); da.Fill(dt); dataGridView1.DataSource = dt;

  36. 13. Primjer • Prikazati podatke o samo jednom djelatniku (čija se šifra unese) u odvojenim textBox-ovima (koristi se DataReader)

  37. Rješenje int id; id = Convert.ToInt16(textBox1.Text); string naredba = "SELECT Ime,Prezime,Posao,Placa,DatumZaposlenja FROM Djelatnik WHERE ID=" + id; SqlCommand comm = new SqlCommand(naredba, veza); SqlDataReader citac = comm.ExecuteReader(); citac.Read(); textBox2.Text = citac.GetString(0); textBox3.Text = citac.GetString(1); if (!citac.IsDBNull(2)) textBox4.Text = citac.GetString(2); textBox5.Text = citac.GetDecimal(3).ToString(); if (!citac.IsDBNull(4)) textBox6.Text = citac.GetDateTime(4).ToString(); citac.Close();

  38. 14. Primjer • Prikazati najveći ID koji je unesen za djelatnika. string naredba = "SELECT MAX(ID) FROM Djelatnik"; SqlCommand comm = new SqlCommand(naredba, veza); SqlDataReader citac = comm.ExecuteReader(); citac.Read(); int sifra = citac.GetInt32(0); textBox1.Text = sifra.ToString(); citac.Close(); veza.Close();

  39. 15. Primjer • Prikazati sumu svih plaća (iz tablice djelatnik). string naredba = "SELECT SUM(Placa) FROM Djelatnik"; SqlCommand comm = new SqlCommand(naredba, veza); SqlDataReader citac = comm.ExecuteReader(); citac.Read(); decimal suma = citac.GetDecimal(0); textBox2.Text = suma.ToString(); citac.Close(); veza.Close();

  40. 16. Primjer • Omogućiti unos novog odjela preko TextBox-ova string unos = "INSERT INTO Odjel VALUES (" + textBox3.Text + ",'" + textBox4.Text + "','" + textBox5.Text + "')"; SqlCommand comm = new SqlCommand(unos, veza); comm.ExecuteNonQuery(); textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; MessageBox.Show("Uspjesno ste unijeli podatke");

  41. 17. Primjer • Omogućiti unos novog sloga (odjel) bez unošenja šifre. Šifra se treba automatski odrediti i unijeti (nevidljivo korisniku). • Program treba obavijestiti korisnika (putem MessageBox-a) o uspješnom unosu • Kada program uspješno proradi, primijeniti i try...catch kod

  42. 18. Primjer • Omogućiti unos novog djelatnika s tim da se naziv odjela odabire iz ComboBox-a

  43. Pitanja? • ....

More Related