Yanıtlar:
ExecuteScalargenellikle sorgunuz tek bir değer döndürdüğünde kullanılır. Daha fazla döndürürse, sonuç ilk satırın ilk sütunudur. Bir örnek olabilir SELECT @@IDENTITY AS 'Identity'.ExecuteReaderbirden çok satır / sütun içeren herhangi bir sonuç kümesi için kullanılır (örneğin, SELECT col1, col2 from sometable).ExecuteNonQuery genellikle sonuç içermeyen SQL ifadeleri için kullanılır (örn. UPDATE, INSERT, vb.).ExecuteNonQueryetkilenen satırların sayısını döndürebilir.
ExecuteNonQuery ():
ExecuteReader ():
ExecuteScalar ():
Referans URL:
http://nareshkamuni.blogspot.in/2012/05/what-is-difference-between.html
Her biri farklı türde bir yürütmedir.
ExecuteScalar , tek bir değer döndürecek sorgu türü olacaktır.
Bir örnek, ekledikten sonra oluşturulan bir kimliği döndürmektir.
INSERT INTO my_profile (Address) VALUES ('123 Fake St.');
SELECT CAST(scope_identity() AS int)
ExecuteReader , sonuçların tüm sütunlarını her seferinde bir satırda okumanıza olanak tanıyan bir veri okuyucu sağlar.
Bir örnek, bir veya daha fazla kullanıcı için profil bilgilerini almak olabilir.
SELECT * FROM my_profile WHERE id = '123456'
ExecuteNonQuery , değerleri döndürmeyen, ancak bir şeyi eklemek veya değiştirmek gibi bir tür iş gerçekleştiren herhangi bir SQL'dir .
Veritabanındaki bir kullanıcının profilini güncellemek bir örnek olabilir.
UPDATE my_profile SET Address = '123 Fake St.' WHERE id = '123456'
Dokümanlardan (not: MSDN, işlerin ne işe yaradığını bilmek istediğinizde kullanışlı bir kaynaktır!):
Bir veritabanından tek bir değer (örneğin, bir toplama değeri) almak için ExecuteScalar yöntemini kullanın. Bu, ExecuteReader yöntemini kullanmaktan daha az kod gerektirir ve ardından SqlDataReader tarafından döndürülen verileri kullanarak tek bir değer oluşturmak için ihtiyaç duyduğunuz işlemleri gerçekleştirir.
CommandText'i Bağlantıya gönderir ve bir SqlDataReader oluşturur.
... ve SqlDataReader'dan ...
Bir SQL Server veritabanından yalnızca ileriye dönük satır akışını okumak için bir yol sağlar. Bu sınıf miras alınamaz.
ExecuteNonQuery'yi katalog işlemlerini gerçekleştirmek (örneğin, bir veritabanının yapısını sorgulamak veya tablolar gibi veritabanı nesneleri oluşturmak) veya UPDATE, INSERT veya DELETE ifadelerini çalıştırarak bir DataSet kullanmadan bir veritabanındaki verileri değiştirmek için kullanabilirsiniz.
Başkalarının yayınladıklarına eklemek için:
ExecuteScalar kavramsal olarak sorgudaki sonuç kümesinin ilk satırından en soldaki sütunu döndürür; bir SELECT * FROM personelden ExecuteScalar yapabilirsiniz, ancak sonuçta ortaya çıkan satırların yalnızca ilk hücresini alırsınız. Genellikle tek bir değer döndüren sorgular için kullanılır. Ben SQLServer hakkında% 100 emin değilim ama Oracle'da, sen olmaz bir FUNCTION (veritabanı kodu döndürür tek bir değer olduğunu) çalıştırmak için kullanabilirsiniz ve size fonksiyonları tek değerleri döndürür rağmen işlevin dönüş değeri vermek için bekliyoruz. Bununla birlikte, işlevi bir sorgunun parçası olarak çalıştırıyorsanız, örneğin ÇİFTTEN ALTSTR ('abc', 1, 1) SEÇİN, bu durumda dönüş değerinin en sol üstte saklanması nedeniyle dönüş değeri verecektir. ortaya çıkan satır kümesinin hücresi
ExecuteNonQuery, verileri değiştiren (INSERT / UPDATE / DELETE) veya veritabanı yapısını değiştiren (CREATE TABLE ...) veritabanında depolanan prosedürleri, işlevleri ve sorguları çalıştırmak için kullanılır. Tipik olarak çağrının dönüş değeri, işlemden kaç satırın etkilendiğinin bir göstergesidir, ancak bunu garanti etmek için DB belgelerini kontrol edin
ExecuteReader() sorgu sonucu için yalnızca ileri ve salt okunur erişim sağlayan veri sağlayıcı DBDataReader nesnesini döndüren bir SQL sorgusu yürütür.
ExecuteScalar()ExecuteReader()kayıt sayısı elde etmek gibi tekli sorgu için tasarlanmış yönteme benzer .
ExecuteNonQuery() oluşturma, silme, güncelleme, ekleme ile çalışan sorgu dışı yürütme
ExecuteNonQuery
Bu ExecuteNonQuery yöntemi yalnızca ekleme, güncelleme ve silme, Oluştur ve SET ifadeleri için kullanılacaktır. ExecuteNonQuery yöntemi, INSERT, DELETE veya UPDATE işlemlerinden etkilenen satır sayısını döndürür.
ExecuteScalar
Veritabanından tek değerleri almak çok hızlıdır. Execute Scalar, komut nesnesi kullanılarak SQL Sorgusu veya Depolanan prosedür çalıştırıldığında tek satırlık tek sütun değeri, yani tek değer döndürür. ExecuteReader
Yürütme Okuyucu, komut nesnesi kullanılarak SQL Sorgusu veya Depolanan yordam yürütülürken satır kümesini döndürmek için kullanılacaktır. Bu, yalnızca kayıtların ileri geri alınmasıdır ve tablo değerlerini ilkten sonuncuya okumak için kullanılır.
ExecuteNonQuery yöntemi, INSERT, DELETE veya UPDATE işlemlerinden etkilenen satır sayısını döndürür. Bu ExecuteNonQuery yöntemi yalnızca ekleme, güncelleme ve silme, Oluştur ve SET ifadeleri için kullanılacaktır. (Daha fazla oku)
ExecuteScalar, komut nesnesi kullanılarak SQL Sorgusu veya Depolanan yordamın yürütülmesi sırasında tek satırlık tek sütun değeri, yani tek değer döndürür. Veritabanından tek değerleri almak çok hızlıdır. (Daha fazla oku)
ExecuteReader, komut nesnesi kullanılarak SQL Sorgusu veya Depolanan prosedür yürütülürken satır kümesini döndürmek için kullanılacaktır. Bu, yalnızca kayıtların ileri geri alınmasıdır ve tablo değerlerini ilkten sonuncuya okumak için kullanılır. (Daha fazla oku)
ExecuteNonQuery: genellikle ekleme, güncelleme, silme işlemleri gibi Sql ifadelerinden döndürülen hiçbir şey olmadığında kullanılır.
cmd.ExcecuteNonQuery();
ExecuteScalar:
Sql sorgusu tek değer döndürdüğünde kullanılacaktır.
Int b = cmd.ExcecuteScalar();
ExecuteReader
Sql sorgusu veya Stored Procedure birden fazla satır / sütun döndürdüğünde kullanılacaktır.
SqlDataReader dr = cmd.ExecuteReader();
daha fazla bilgi için buraya tıklayabilirsiniz http://www.dotnetqueries.com/Article/148/-difference-between-executescalar-executereader-executenonquery