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

alattin (17095) 8 yıl önce sordu

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?

Toplam 1 cevap


alattin (17095) 8 yıl önce cevapladı

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.