Merhabalar Arkadaşlar,
Bu yazımızda BAGLAN class ı içerisindeki tek_veri_getir fonksiyonunun nasıl kullanıldığını anlatmaya çalışacağım.
ASP.Net ile verilerimizi veritabanına gönderdik ve veritabanımızda bazı işlemler yaptığımızı düşünelim. Bu işlemler sonucunda geriye bizim belirlediğimiz TEK BİR SONUÇ (Tek sütun ve Tek satır) göndermesini istiyorsak bu fonksiyonu kullanacağız.
Üst resimdeki gibi bir girişimiz olsun.
Örnek Tablolar
Stored Procedure
Kullanıcı girişi için bir stored procedure (SP) yazacağız.
Senaryomuza göre SP'e 3 adet veri göndereceğiz (eposta, şifre ve yetki) ve SP' çalıştıktan sonra bize gönderdiğimiz bilgilere göre kullanıcı varsa onun id bilgisini yoksa 0 (sıfır) değerini geri döndürecek.
Yani yapacağımız işlemler sonucunda mutlaka tek bir veri gelmesi gerekiyor.
ALTER proc [dbo].[giris_yetki]
@eposta nvarchar(50),
@sifre nvarchar(50),
@yetki nvarchar(20)
as
if (@yetki = 'Yönetici')
begin
--Yönetici Girişi işlemleri
if (select COUNT(*)as sayi from Yonetici where eposta=@eposta and sifre=@sifre and durum='Aktif')>0
begin
select top 1 id from Yonetici where eposta=@eposta and sifre=@sifre and durum='Aktif'
end
else
begin
select 0
end
end
else
begin
--Kullanıcı Girişi işlemleri
select isnull((select top 1 id from Kullanici where eposta=@eposta and sifre=@sifre and durum='Aktif'),0)
end
Code-behind
Burada yapacağımız işlem oluşturduğumuz stored procedure ' e verileri göndermek ve gelen tek veriye göre işlem yapmak.
protected void btn_giris_Click(object sender, EventArgs e)
{
try
{
baglan bag = new baglan();
object[,] icerik = new object[,] {
{ "@eposta", txt_eposta.Text },
{ "@sifre", txt_sifre.Text },
{ "@yetki", drop_yetki.SelectedItem.Text }
};
int id = 0;
id = Convert.ToInt32(bag.tek_veri_getir(icerik, "giris_yetki"));
if (id == 0)
{
lbl_sonuc.Text = "Hatalı Giriş";
}
else
{
if (drop_yetki.SelectedItem.Text == "Yönetici")
{
// Yönetici girişi işlemleri burada
Response.Redirect("Yonetici/index_yonetici.aspx?id=" + id);
}
else
{
//Kullanıcı girişi işlemleri burada
Response.Redirect("Kullanici/index_kullanici.aspx?id=" + id);
}
}
}
catch (Exception)
{
throw;
}
}
Başka nerelerde kullanılır ?
- A sınıfının öğrenci sayısını getir.
- Bu yıl kaç öğrenci mezun oldu ?
gibi yapacağımız işlemler sonucunda tek bir veri getirilecekse bu fonksiyonunu kullanıyoruz.
İyi çalışmalar dilerim.
ConversionConversion EmoticonEmoticon