C# Ado.Net: ExecuteScalar, ExecuteReader ve ExecuteNonQuery arasındaki fark nedir?

0

C# Ado.Net ExecuteScalar, ExecuteReader ve  ExecuteNonQuery arasındaki fark nedir?

ExecuteScalar ne zaman kullanılmalıdır?

ExecuteReader ne zaman kullanılmalıdır?

ExecuteNonQuery ne zaman kullanılmalıdır?

alattin alattin (16984)
8 yıl önce sordu

    Toplam 1 Cevap


    0

    C# Ado.Net ExecuteScalar, ExecuteReader ve  ExecuteNonQuery arasındaki fark nedir?

    Ado.Net'te bir komut nesnesini çalıştırmak istediğinizde size birden fazla yöntem ile çalıştırma imkanı sunar.

    Bu yöntemler farklı senaryolarda kullanılır.

    C# Ado.Net ExecuteScalar, ExecuteReader ve  ExecuteNonQuery hangi durumlarda hangisini kullanmalıyım?

    ExecuteScalar: 

    Eğer sorgunuzdan tek bir değer dönecekse ExecuteScalar kullanın. Örneğin 

    Select Count(*) from Kullanicilar

    Bu sql sorgusu kullanıcılar tablosundaki kullanıcıların toplam sayısını döndürür.  Bu değer 0, 20, 450 gibi sayılsal bir değerdir.  

    Select Ad from Kullanicilar Where No=1

    Bu sorgunun sonucunda  tek bir değer dönüyorsa, örneğin Ali, Veli gibi o zaman yine ExecuteScalar kullanılmalıdır.

     ExecuteReader:

    Eğer SQL sorgusu sonucunda birden fazla satır dönüyorsa, o zaman  ExecuteReader kullanılmalıdır
    Örneğin 

    select * from kullanicilar

    sorgusunda tüm kullanıcılar dönecektir. Bu durumda ExecuteReader kullanılmalıdır.

    ExecuteNonQuery :

    SQL sorgusu sonucunda  bir dönüş beklenmiyorsa o zaman ExecuteNonQuery  kullanılmalıdır.

    Örneğin silme veri ekleme gibi işlemlerde SQL sunucudan bir dönüş beklemeyiz. SQL'den veri çekmeyeceksek o zaman ExecuteNonQuery  uygundur.

    Delete from Kullanici Where No=2

    Örnek sorguda 2 numaralı kullanıcı silinecektir. Böyle bir sorguda genel senaryolarda SQL'den bir veri beklemeyiz. Yine aynı şekilde Insert kullanıldığında vbir veri beklemeyiz.  Insert ve Delete işlemlerinde ExecuteNonQuery  kullanılmalıdır.

    alattin alattin (16984)
    8 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol