rad sa uskladištenim procedurama...listview uvod u datagridview •datagridview je moćna,...

41
Rad sa uskladištenim procedurama

Upload: others

Post on 20-Jan-2021

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Rad sa uskladištenim procedurama

Page 2: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Baza KorisnikDb

2

CREATE DATABASE KorisnikDBGO

USE KorisnikDBGO

CREATE TABLE Korisnik(KorisnikId int IDENTITY(1,1) NOT NULL PRIMARY KEY,Ime nvarchar(30) NOT NULL,Prezime nvarchar(30) NOT NULL,Email varchar(50) NOT NULLCONSTRAINT UQ_Email UNIQUECONSTRAINT CHK_Email CHECK (Email LIKE '_%@_%._%'),Lozinka varchar(15) NOT NULL)

Page 3: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Procedura UbaciKorisnika

3

GOCREATE PROC UbaciKorisnika (@Ime nvarchar(30),@Prezime nvarchar(50),@Email nvarchar(50),@Lozinka nvarchar(50),@KorisnikId int OUTPUT)ASINSERT INTO Korisnik ( Ime,Prezime, Email, Lozinka )VALUES ( @Ime, @Prezime, @Email, @Lozinka );SELECT @KorisnikID = @@IDENTITY;GO

Page 4: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Korisnički interfejs

4

Page 5: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Upis konekcionog stringa u aplikaciona setovanja

5

Page 6: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Klasa Konekcija

6

static class Konekcija{

public static string cnnKorisnikDB = Properties.Settings.Default.KorisnikDBConnectionString;

}

Page 7: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Izvršavanje uskladištene procedure -1

7

private void ButtonUbaci_Click(object sender, EventArgs e){

int ID = 0;string poruka = "";using (SqlConnection konekcija = new SqlConnection(Konekcija.cnnKorisnikDB)){

using (SqlCommand komanda = new SqlCommand("UbaciKorisnika", konekcija)){...}

}

Page 8: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Izvršavanje uskladištene procedure -2

8

komanda.CommandType = CommandType.StoredProcedure;SqlParameter IdParametar = new SqlParameter("@KorisnikId ", SqlDbType.Int);IdParametar.Direction = ParameterDirection.Output;komanda.Parameters.Add(IdParametar);

try{

komanda.Parameters.AddWithValue("@Ime", textBoxIme.Text);komanda.Parameters.AddWithValue("@Prezime", textBoxPrezime.Text);komanda.Parameters.AddWithValue("@Email", textBoxEmail.Text);konekcija.Open();komanda.ExecuteNonQuery();ID = (int)IdParametar.Value;

}catch (Exception xcp){

poruka = xcp.Message;}

Page 9: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Izvršavanje uskladištene procedure -3

9

if (poruka != ""){

MessageBox.Show(poruka);}else{MessageBox.Show("Ubacen Korisnik ciji je ID : " + ID.ToString());}

}

Page 10: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Kontrole DataGridView i ListView

Page 11: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Uvod u DataGridView

• DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih podataka

• Može da se poveže sa kolekcijom objekata korišćenjem svojstva DataSource

• DataGridView kreira jednu kolonu za svako svojstvo iz izvora podataka

• Svojstvo Colums daje kolekciju DataGridViewColumn objekata

• Svojstvo Rows daje kolekciju DataGridViewRow objekata

• DataGridViewRow objekat ima svojstvo Cells kojim se prikazuje kolekcija DataGridViewCell objekata

11

Page 12: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Šematski prikaz DataGridView objekata

12

Page 13: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Setovanja aplikacije

13

Page 14: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Klasa Konekcija

static class Konekcija{

public static string cnnMagacin =Properties.Settings.Default.MagacinConnectionString;

}

14

Page 15: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Podešavanje DataGridView kontrole

15

Page 16: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Podešavanje DataGridView kontrole

16

Page 17: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Korisnički interfejs

17

Page 18: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Klasa Proizvod

class Proizvod{

public int ProizvodId { get; set; }public int KategorijaId { get; set; }public string NazivProizvoda { get; set; }public decimal Cena { get; set; }public int KolicinaNaLageru { get; set; }

public override string ToString(){

return NazivProizvoda;}

}

18

Page 19: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Metoda VratiProizvode() statička klasa ProizvodDalpublic static List<Proizvod> VratiProizvode(){

List<Proizvod> listaProizvoda = new List<Proizvod>();using (SqlConnection konekcija = new SqlConnection(Konekcija.cnnMagacin)){

using (SqlCommand komanda = new SqlCommand("SELECT * FROM Proizvod ORDER BY NazivProizvoda", konekcija)){

try{

konekcija.Open();using (SqlDataReader dr = komanda.ExecuteReader()){

while (dr.Read()){

Proizvod p1 = new Proizvod{

ProizvodId = dr.GetInt32(0),KategorijaId = dr.GetInt32(1),NazivProizvoda = dr.GetString(2),Cena = dr.GetDecimal(3),KolicinaNaLageru = dr.GetInt32(4)

};listaProizvoda.Add(p1);

}}return listaProizvoda;

}catch (Exception){

return null;}

}}

} 19

Page 20: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Povezivanje sa kolekcijom objekata

20

private void PrikaziProizvode(){

dataGridView1.DataSource = null;dataGridView1.DataSource = ProizvodDal.VratiProizvode();

}

private void Form1_Load(object sender, EventArgs e){

PrikaziProizvode();}

Page 21: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Iščitavanje selektovanog reda DataGridView kontrole

21

private void dataGridView1_SelectionChanged(object sender, EventArgs e){

if (dataGridView1.SelectedRows.Count > 0){

DataGridViewRow selektovaniProizvod = dataGridView1.SelectedRows[0];

StringBuilder sb = new StringBuilder();sb.AppendLine(selektovaniProizvod.Cells[2].Value.ToString());sb.AppendLine(selektovaniProizvod.Cells[3].Value.ToString());sb.AppendLine(selektovaniProizvod.Cells[4].Value.ToString());

richTextBox1.Text = sb.ToString();}

}

Page 22: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Klasa ProizvodView

22

class ProizvodView{

public int Id { get; set; }public string Naziv { get; set; }public decimal Cena { get; set; }

}

Page 23: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Modifikacija metode PrikaziProizvode()

private void PrikaziProizvode(){

dataGridView1.DataSource = null;// dataGridView1.DataSource = ProizvodDal.VratiProizvode();

List<Proizvod> listaProizvoda = ProizvodDal.VratiProizvode();

IEnumerable<ProizvodView> lista1 = listaProizvoda.Select(p => new ProizvodView{

Id = p.ProizvodId,Naziv = p.NazivProizvoda,Cena = p.Cena

});

dataGridView1.DataSource = lista1.ToList();}

23

Page 24: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Prikaz određenih kolona tabele

24

Page 25: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Indeks selektovanog reda

25

private void button1_Click(object sender, EventArgs e){

if (dataGridView1.SelectedRows.Count > 0){

int indeks = dataGridView1.SelectedRows[0].Index;MessageBox.Show(indeks.ToString());

}else{

MessageBox.Show("Nije selektovan red");}

}

Page 26: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

ListView kontrola

• ListView omogućava da se prikaže lista stavki kojima se mogu pridružiti slike kao u File eksploreru

• Omogućava da se stavke prikazuju na jedan od četiri različita načina:• prikaz teksta sa velikim ikonama

• prikaz teksta sa malim ikonama

• prikaz vertikalne liste

• prikaz detalja

• Stavke ListView kontrole su objekti klase ListViewItem

26

Page 27: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Svojstva ListView kontrole

• Svojstvo Columns sadrži kolekciju kolona koje će biti prikazani u režimu detalja

• Svojstvo Items daje kolekciju ListViewItem objekata koji će biti prikazani u ListView kontroli

• Svojstvo LargeImageList ukazuje na ImageList komponentu iz koje će biti prikazane slike u ListView kontroli kada je njeno View svojstvo postavljeno na vrednost LargeIcon

• Svojstvo SmalImageList ukazuje na ImageList komponentu iz koje se prikazuju slike kada je View svojstvo ListView kontrole postavljeno na vrednost SmallIcon

• Svojstvo View pokazuje način na koji se kontrola ListView prikazuje

27

Page 28: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

ListView kontrola u režimu detalja

28

Page 29: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Podešavanje ListView kontrole

29

Page 30: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Prikaz linija grida kod ListView kontrole

30

Page 31: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Korisnički interfejs

31

Page 32: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Definisanje kolona ListView kontrole

private void Form2_Load(object sender, EventArgs e){

listView1.View = View.Details;

listView1.Columns.Add("Id", 30);listView1.Columns.Add("Naziv", 200);listView1.Columns.Add("Cena", 120);

// PrikaziProizvode();}

32

Page 33: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Prikaz podataka iz baze u ListView kontroli

33

private void PrikaziProizvode(){

listView1.Items.Clear();

foreach (Proizvod p in ProizvodDal.VratiProizvode()){

ListViewItem lvi = new ListViewItem(p.ProizvodId.ToString());lvi.SubItems.Add(p.NazivProizvoda);lvi.SubItems.Add(p.Cena.ToString());listView1.Items.Add(lvi);

}}

Page 34: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Load procedura forme

34

private void Form2_Load(object sender, EventArgs e){

listView1.View = View.Details;

listView1.Columns.Add("Id", 30);listView1.Columns.Add("Naziv", 200);listView1.Columns.Add("Cena", 120);

PrikaziProizvode();}

Page 35: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Iščitavanje selektovane stavke

35

private void listView1_SelectedIndexChanged(object sender, EventArgs e){

if (listView1.SelectedItems.Count > 0){

ListViewItem sel = listView1.SelectedItems[0];

string id = sel.SubItems[0].Text;string naziv = sel.SubItems[1].Text;string cena = sel.SubItems[2].Text;

richTextBox1.Text = $"Id: {id}, Naziv: {naziv}, Cena: {cena}";}

}

Page 36: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 1

36

Svojstvo Columns objekta klase DataGridView daje:a. Kolekciju objekata klase DataColumnb. Kolekciju objekata klase GridViewColumnc. Kolekciju objekata klase DataGridViewColumn

Odgovor: c

Page 37: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 2

37

Tip selekcije u DataGridView kontroli definiše se njenim svojstvom:a. SelectionModeb. SelectionTypec. SelectionUnit

Odgovor: a

Page 38: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 3

38

DataGridView kontrola čije je svojstvo Name dataDataGridView1, ima svojstvo MultiSelect postavljeno na vrednost falsei svojstvo SelectionMode na vrednost FullRowSelect. Na koji način se pristupa selektovanom redu:a. DataGridViewRow selVrsta = dataDataGridView1.SelectedRows;b. DataGridViewRow selVrsta = dataDataGridView1.SelectedRows[0];c. DataGridViewRow selVrsta = dataDataGridView1.SelectedItem;

Odgovor: b

Page 39: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 4

39

U kontroli ListView a. stavke se uvek prikazuju na isti načinb. način prikazivanja stavki definise se svojstvom Viewc. način prikazivanja stavki definise se svojstvom Icond. način prikazivanja stavki definise se svojstvom ImageMode

Odgovor: b

Page 40: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 5

40

Stavke ListView kontrole su objekti klase:a. ListViewItemb. ListItemc. ListNode

Odgovor: a

Page 41: Rad sa uskladištenim procedurama...ListView Uvod u DataGridView •DataGridView je moćna, fleksibilna kontrola, jednostavna za korišćenje, koja se koristi za prikaz tabelarnih

Pitanje 6

41

Da bismo zabranili selektovanje više od jedne stavke unutar ListViewkontrole :a. svojstvo Multiple postavimo na Falseb. svojstvo MultiSelect postavimo na Falsec. svojstvo SingleSelect postavimo na vrednost True

Odgovor: b