Izvinjavam se svima sto postavljam pitanje, ali nisam siguran da li sam dobro shvatio.
Ono sto me interesuje po pitanju Session je sledece (dacu primer) :
- Imam web aplikaciju gde se prvo loguju korisnici (default.aspx)
- Kada se izvrsi provera zapisujem podake o logovanju u Session
npr:
Loguje se Pero (ciji se podaci proveravaju u sql bazi) i koristim kod:
Code:
Session.Add("Korisnik","Pero")
Session.Add("Sifra",1)
Session.Add("RecNo",0)
Response.Redirect("webform1.aspx")
ovde se Korisnik "Pero" i Sifra 1 ili bilo koji vec broj vade iz baze podataka
Zatim se loguje Milan:
Code:
Session.Add("Korisnik","Milan")
Session.Add("Sifra",16)
Session.Add("RecNo",0)
Response.Redirect("webform1.aspx")
Dolazi na red ono sto me interesuje :
nakon redirect-a na webform1.aspx imam tabelu bilo kakvih podataka i button-e za manipulaciju istih (upisi novi, izmeni, obrisi, .... itd)
Primera radi da se radi o imeniku.
E sada, obojica su kliknula na button "Izmeni" ali su u tabeli (GridView) izabrali razlicite kontakte iz imenika.
Prikazuje im se novi Panel sa izabranim podacima.
Moje pitanje/a:
- da li ce se obojici prikazati isti podaci (?) ili ce se svakom od njih prikazati podaci za kontakt koji je izabrao za obradu?
- da li ce se u sql bazu upisati izmene za kontakte koji su izabrani ili samo za jedan(?) ?
npr. kod :
Code:
'kline se na red u GridView-u
Private Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging
Session.Item("RecNo") = CLng(GridView1.Rows(e.NewSelectedIndex).Cells(1).Text) 'u ovoj celiji se nalazi sifra kontakta iz imenika
lstImenik.Visible = False 'Panel "lstImenik" se sakriva
editKontakt.Visible = True 'prikazuje se Panel "editKontakt"
Dim conn As New SqlConnection = Nothing
Dim cmd As New SqlCommand = Nothing
Dim tds As New SqlDataReader
'otvaram bazu (da sada ne pisem kod)
cmd = New SqlCommand("SELECT * FROM Imenik WHERE KontaktID=" + Session.Item("RecNo").ToString + ";", conn)
tds = cmd.ExecueReader
tds.Read()
txtIme.Text = tds("Ime")
txtTelefon.Text = tds("Telefon")
tds.Close() : tds = Nothing : cmd.Dispose() : cmd = Nothing : conn.Close() : conn.Dispose() : conn = Nothing
txtIme.Focus()
End Sub
Da li ce se svakom od njih prikazati podaci na osnovu koji su KontaktID izabrali?
I zatim prilikom simanja izmena podataka kontakta - kada kliknu na button "Snimi izmene"
primer koda :
Code:
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
Dim conn As New SqlConnection = Nothing
Dim cmd As New SqlCommand = Nothing
Dim tds As New SqlDataReader
'otvaram bazu (da sada ne pisem kod)
cmd = New SqlCommand("UPDATE Imenik SET Ime='" + txtIme.Text +"', Telefon='" + txtTelefon.Text + "' WHERE KontaktID=" + Session.Item("RecNo").ToString + ";", conn)
cmd.ExecuteNonQuery()
cmd.Dispose() : cmd = Nothing : conn.Close() : conn.Dispose() : conn = Nothing
lstImenik.Visible = True 'Panel "lstImenik" se prikazuje
editKontakt.Visible = False 'skriva se Panel "editKontakt"
GridView1.DataBound()
End Sub
Da li ce se izvrsiti izmena podataka u bazi za svakog korisnika ponaosob na osnovu toga koji su KorisnikID selektovali?
npr. Pero je izabrao zapis pod rednim brojem (KorisnikID) 3 a Milan pod rednim brojem 48.
Veoma opsirno, znam, ali nadam se da sam, koliko toliko, dobro objasnio sta me interesuje.
Da li Session.Item("RecNo") zapisuje za svakog ponaosob promenljivu koju su izabrali?
Odnosno, da li Session, kako da kazem, kreira za svakog ponaosob?
Ili bolje receno, da li svaki ulogovani korisnik (i Pero i Milan) imaju svoj, ajde recimo laicki, licni Session?
Izvinjavam se jos jednom svima, ali sam pocetnik u ovome pa me intersuje ovo gore navedeno, da ne bih napravio zbrku u web aplikaciji koju pravim (mislim pravim ;) , bolje receno vezbam - ucim) odnosno u sql bazi podataka.
Unapred hvala svima.
Pozdrav svima.