20.11.2014 Vize Soruları ve Cevapları

Verilen Ogrenci, Akademisyen tablolarını ve Baglan Class'ını kullanarak :


a. Resimdeki Öğrenci girişi için btn_giris.Click() olayındaki kodları ve kullanacağınız Stored Procedure' u yazınız.
   i. Öğrenci yanlış giriş yaparsa lbl_sonuc = 'Yanlış giriş.' yazacak.
  ii. Öğrenci mezun olmuşsa lbl_sonuc = 'Mezun oldunuz.' yazacak.
 iii. Öğrenci doğru giriş için lbl_sonuc = Öğrencinin id bilgisi yazacak.



Stored Procedure

create proc ogrenci_giris
@eposta nvarchar(30),
@sifre nvarchar(40)
as
if (select isnull(COUNT(*),0) as sayi from Ogrenci where eposta=@eposta and sifre=@sifre)>0
begin
 if (select isnull(COUNT(*),0) as sayi from Ogrenci where eposta=@eposta and sifre=@sifre and durum='Mezun')>0
 begin
  Select -1
 end
 else
 begin
  select top 1 isnull(id,0) from Ogrenci where eposta=@eposta and sifre=@sifre
 end
end
else
begin
 Select 0
end


Code-Behind

 protected void btn_giris_Click(object sender, EventArgs e)
        {
                baglan bag = new baglan();
                object[,] icerik = new object[,] {{ "@eposta", txt_eposta.Text },
                                                  { "@sifre", txt_sifre.Text }};
                int id = 0;
                id = Convert.ToInt32(bag.tek_veri_getir(icerik, "ogrenci_giris"));

                if (id == -1)
                    lbl_sonuc.Text = "Mezun oldunuz.";
                else if (id == 0)
                    lbl_sonuc.Text = "Yanlış giriş.";
                else
                    lbl_sonuc.Text = id.ToString(); 
        }


b. Resimdeki Öğrenci Düzenle için Page_Load() ve btn_duzenle_click() olayındaki kodları ve kullanacağınız Stored Procedure'u yazınız. (ogrenci_duzenle.aspx?id=1)
     Page_Load için:
         1. Durum, Enumdan çekilecek (Enum adı = Ogr_Durumlari)
         2. Danışman, Veritabanından çekilecek (Text= Unvan ad soyad, Value= id)
         3. Ad,Soyad,Durum,Danışman DataReader ile çekilip gösterilecek.


Stored Procedures

create proc drop_akademisyen
as
select unvan +' ' + ad + ' '+ soyad as akademisyen_adi, id from Akademisyen

create proc ogrenci_getir
@id int
as
select * from Ogrenci where id=@id

create proc ogrenci_duzenle
@id int,
@ad nvarchar(50),
@soyad nvarchar(50),
@durum nvarchar(30),
@danisman_id int
as
update Ogrenci set ad=@ad,soyad=@soyad,durum=@durum,danisman_id=@danisman_id
where id=@id



Code-Behind

protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false)
            {
                baglan bag = new baglan();

                drop_durum.DataSource = Enum.GetNames(typeof(Ogr_Durumlari));
                drop_durum.DataBind();

                drop_danisman.DataSource = bag.tablo_getir("drop_akademisyen");
                drop_danisman.DataTextField = "akademisyen_adi";
                drop_danisman.DataValueField = "id";
                drop_danisman.DataBind();

                object[,] icerik = new object[,] {{"@id", Convert.ToInt32(Request.QueryString["id"])}};
                SqlDataReader dra = bag.calistir_dra(icerik, "ogrenci_getir");
                if (dra.Read())
                {
                    txt_ad.Text = dra["ad"].ToString();
                    txt_soyad.Text = dra["soyad"].ToString();
                    drop_durum.Items.FindByText(dra["durum"].ToString()).Selected = true;
                    drop_danisman.Items.FindByValue(dra["danisman_id"].ToString()).Selected = true;
                }
                dra.Close();           
            }
        }

protected void btn_duzenle_Click(object sender, EventArgs e)
        {
            baglan bag = new baglan();
            object[,] icerik = new object[,] { { "@id", Convert.ToInt32(Request.QueryString["id"]) },
                                               {"@ad",txt_ad.Text},
                                               {"@soyad",txt_soyad.Text},
                                               {"@durum",drop_durum.SelectedItem.Text},
                                               {"@danisman_id",drop_danisman.SelectedItem.Value}};
            bag.calistir(icerik, "ogrenci_duzenle");
        }