rad sa uskladištenim procedurama...listview uvod u datagridview •datagridview je moćna,...
TRANSCRIPT
Rad sa uskladištenim procedurama
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)
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
Korisnički interfejs
4
Upis konekcionog stringa u aplikaciona setovanja
5
Klasa Konekcija
6
static class Konekcija{
public static string cnnKorisnikDB = Properties.Settings.Default.KorisnikDBConnectionString;
}
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)){...}
}
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;}
Izvršavanje uskladištene procedure -3
9
if (poruka != ""){
MessageBox.Show(poruka);}else{MessageBox.Show("Ubacen Korisnik ciji je ID : " + ID.ToString());}
}
Kontrole DataGridView i ListView
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
Šematski prikaz DataGridView objekata
12
Setovanja aplikacije
13
Klasa Konekcija
static class Konekcija{
public static string cnnMagacin =Properties.Settings.Default.MagacinConnectionString;
}
14
Podešavanje DataGridView kontrole
15
Podešavanje DataGridView kontrole
16
Korisnički interfejs
17
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
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
Povezivanje sa kolekcijom objekata
20
private void PrikaziProizvode(){
dataGridView1.DataSource = null;dataGridView1.DataSource = ProizvodDal.VratiProizvode();
}
private void Form1_Load(object sender, EventArgs e){
PrikaziProizvode();}
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();}
}
Klasa ProizvodView
22
class ProizvodView{
public int Id { get; set; }public string Naziv { get; set; }public decimal Cena { get; set; }
}
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
Prikaz određenih kolona tabele
24
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");}
}
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
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
ListView kontrola u režimu detalja
28
Podešavanje ListView kontrole
29
Prikaz linija grida kod ListView kontrole
30
Korisnički interfejs
31
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
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);
}}
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();}
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}";}
}
Pitanje 1
36
Svojstvo Columns objekta klase DataGridView daje:a. Kolekciju objekata klase DataColumnb. Kolekciju objekata klase GridViewColumnc. Kolekciju objekata klase DataGridViewColumn
Odgovor: c
Pitanje 2
37
Tip selekcije u DataGridView kontroli definiše se njenim svojstvom:a. SelectionModeb. SelectionTypec. SelectionUnit
Odgovor: a
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
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
Pitanje 5
40
Stavke ListView kontrole su objekti klase:a. ListViewItemb. ListItemc. ListNode
Odgovor: a
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