Son zamanlarda benim için ilginç davranışlar fark edildi. sahip olduğunda ExecuteScalar SELECT'ten hemen sonra döner mi?
MS SQL saklı-yordam SqlCommand.ExecuteScalar kullanılarak ran(), başvurum SEÇ sonra yapılır görünen herhangi bir SQL Hatalar veya baskılar tamamen habersiz gibi görünüyor.En olası açıklama bu akış kontrolü (saklı yordam altında sessizce yürütülmesine devam gerçi) bitirmek için saklı yordam beklemeden herhangi SELECT sonuç görünür hemen sonra C# verilir olduğunu.
Apaçık Avantaj performans kazancı (sonuç zaten bilindiği için, beklemeye gerek) 'dir, maalesef C# uygulaması bu noktadan sonra olabilirdi herhangi bir SQL istisna habersizdir.
kimse benim açıklama onaylamak olabilir mi? Bu davranış değiştirilebiliyor mu?
Bu sorunuza cevap olabilir: http://stackoverflow.com/questions/7024109/how-can-i-get-an-error-message-that-happens-when- -ExecuteNonQuery kullanarak ve bu da yararlı olabilir: Eğer akışın sonuna kadar sonucu geçmiş okumaz eğer http://support.microsoft.com/kb/321903/en-us –
Bu DataReaders ile gerçekleşir. Bu, ExecuteScalar'a uygulanacaksa elden bile çıkma. –