जवाबों:
ExecuteScalar
आमतौर पर इसका उपयोग तब किया जाता है जब आपकी क्वेरी एकल मान लौटाती है। यदि यह अधिक वापस आता है, तो परिणाम पहली पंक्ति का पहला कॉलम है। एक उदाहरण हो सकता है SELECT @@IDENTITY AS 'Identity'
।ExecuteReader
कई पंक्तियों / स्तंभों (जैसे, SELECT col1, col2 from sometable
) के साथ सेट किए गए किसी भी परिणाम के लिए उपयोग किया जाता है ।ExecuteNonQuery
आम तौर पर परिणाम के बिना SQL बयान के लिए प्रयोग किया जाता है (जैसे, अद्यतन, INSERT, आदि)।ExecuteNonQuery
प्रभावित पंक्तियों की संख्या वापस कर सकते हैं।
प्रश्न नहीं पूछो():
ExecuteReader ():
ExecuteScalar ():
संदर्भ URL:
http://nareshkamuni.blogspot.in/2012/05/what-is-difference-between.html
प्रत्येक एक अलग प्रकार का निष्पादन है।
ExecuteScalar क्वेरी का प्रकार होने जा रहा है जो एकल मान लौटाएगा।
एक उदाहरण डालने के बाद एक जेनरेट की गई आईडी को लौटाया जाएगा।
INSERT INTO my_profile (Address) VALUES ('123 Fake St.');
SELECT CAST(scope_identity() AS int)
ExecuteReader आपको एक डेटा रीडर देता है जो आपको एक बार में सभी परिणामों के कॉलम पढ़ने की अनुमति देगा।
एक उदाहरण एक या अधिक उपयोगकर्ताओं के लिए प्रोफ़ाइल जानकारी खींच रहा होगा।
SELECT * FROM my_profile WHERE id = '123456'
ExecuteNonQuery किसी भी SQL है जो मानों को वापस नहीं कर रहा है, लेकिन वास्तव में कुछ फॉर्म का काम कर रहा है जैसे कुछ हटाना या संशोधित करना।
एक उदाहरण डेटाबेस में एक उपयोगकर्ता की प्रोफ़ाइल को अपडेट कर रहा होगा।
UPDATE my_profile SET Address = '123 Fake St.' WHERE id = '123456'
डॉक्स से (नोट: जब आप जानना चाहते हैं कि MSDN एक आसान संसाधन है तो आप क्या करते हैं!)
डेटाबेस से एकल मान (उदाहरण के लिए, कुल मान) प्राप्त करने के लिए ExecuteScalar विधि का उपयोग करें। इसके लिए ExecuteReader विधि का उपयोग करने की तुलना में कम कोड की आवश्यकता होती है, और फिर SqlDataReader द्वारा दिए गए डेटा का उपयोग करके एकल मान उत्पन्न करने के लिए आवश्यक संचालन करना।
कनेक्शन के लिए CommandText भेजता है और एक SqlDataReader बनाता है।
... और SqlDataReader से ...
SQL सर्वर डेटाबेस से पंक्तियों की आगे-केवल स्ट्रीम पढ़ने का एक तरीका प्रदान करता है। इस वर्ग को विरासत नहीं बनाया जा सकता।
आप ExecuteNonQuery का उपयोग कैटलॉग ऑपरेशंस (उदाहरण के लिए, डेटाबेस की संरचना को क्वेरी करने या टेबल्स जैसे डेटाबेस ऑब्जेक्ट्स बनाने के लिए) का उपयोग कर सकते हैं, या डेटासेट का उपयोग किए बिना डेटाबेस में डेटा को बदलने के लिए UPDATE, INSERT, या DELETE स्टेटमेंट्स निष्पादित करके कर सकते हैं।
दूसरों ने जो पोस्ट किया है उसे जोड़ने के लिए:
ExecuteScalar वैचारिक रूप से क्वेरी से परिणामी की पहली पंक्ति से बाएं कॉलम को लौटाता है; आप कर्मचारियों से एक चयन * निष्पादित कर सकते हैं, लेकिन आप केवल उन पंक्तियों की पहली सेल प्राप्त करेंगे जो आमतौर पर उन प्रश्नों के लिए उपयोग की जाती हैं जो एकल मान लौटाते हैं। मैं नहीं 100% यकीन है कि SQLServer के बारे में कर रहा हूँ, लेकिन Oracle में, आप wouldnt एक समारोह (एक डेटाबेस कोड है कि रिटर्न एकल मान) को चलाने के लिए इसका इस्तेमाल करते हैं और यह आपको समारोह भले ही कार्यों एकल मान के रिटर्न मान देने के लिए उम्मीद है। हालाँकि, यदि आप फ़ंक्शन को क्वेरी के भाग के रूप में चला रहे हैं, जैसे SELECT SUBSTR ('abc', 1, 1) DUAL से तो यह इस तथ्य के आधार पर रिटर्न वैल्यू देगा कि रिटर्न वैल्यू को सबसे ऊपरी भाग में संग्रहीत किया गया है परिणामी रोसेट का सेल
ExecuteNonQuery डेटाबेस संग्रहीत कार्यविधियाँ, फ़ंक्शन और क्वेरीज़ जो डेटा को संशोधित करने के लिए उपयोग किया जाएगा (INSERT / UPDATE / DELETE) या डेटाबेस संरचना को संशोधित करें (क्रिएट टेबल ...)। आमतौर पर कॉल का रिटर्न वैल्यू इस बात का संकेत है कि ऑपरेशन से कितनी पंक्तियाँ प्रभावित हुई थीं लेकिन इसकी गारंटी के लिए DB डॉक्यूमेंट की जाँच करें
ExecuteReader()
SQL प्रदाता निष्पादित करता है जो डेटा प्रदाता DBDataReader ऑब्जेक्ट को लौटाता है जो केवल आगे प्रदान करता है और क्वेरी के परिणाम के लिए केवल एक्सेस पढ़ता है।
ExecuteScalar()
एक ExecuteReader()
विधि के समान है जिसे सिंगलटन क्वेरी के लिए डिज़ाइन किया गया है जैसे कि रिकॉर्ड गणना प्राप्त करना।
ExecuteNonQuery()
गैर क्वेरी निष्पादित करें जो बनाने, हटाने, अद्यतन, सम्मिलित करने के साथ काम करता है)
प्रश्न नहीं पूछो
इस ExecuteNonQuery पद्धति का उपयोग केवल सम्मिलित करने, अद्यतन करने और हटाने, बनाने और कथन सेट करने के लिए किया जाएगा। ExecuteNonQuery विधि INSERT, DELETE या UPDATE कार्रवाई से प्रभावित पंक्तियों की संख्या लौटाएगी।
ExecuteScalar
यह डेटाबेस से एकल मान प्राप्त करने के लिए बहुत तेज़ है। Execute Scalar कमांड ऑब्जेक्ट का उपयोग करके SQL Query या Stored प्रक्रिया के निष्पादन पर सिंगल रो सिंगल कॉलम वैल्यू यानी सिंगल वैल्यू लौटाएगा। ExecuteReader
SQL ऑब्जेक्ट या कमांड ऑब्जेक्ट का उपयोग करके संग्रहीत कार्यविधि के निष्पादन पर पंक्तियों के सेट को वापस करने के लिए Execute Reader का उपयोग किया जाएगा। यह केवल अभिलेखों की पुनर्प्राप्ति के लिए आगे है और इसका उपयोग तालिका मानों को पहली से आखिरी तक पढ़ने के लिए किया जाता है।
ExecuteNonQuery विधि INSERT, DELETE या UPDATE कार्रवाई से प्रभावित पंक्तियों की संख्या लौटाएगी। इस ExecuteNonQuery पद्धति का उपयोग केवल सम्मिलित करने, अद्यतन करने और हटाने, बनाने और कथन सेट करने के लिए किया जाएगा। (अधिक पढ़ें)
ExecuteScalar कमांड ऑब्जेक्ट का उपयोग करते हुए SQL क्वेरी या संग्रहीत प्रक्रिया के निष्पादन पर एकल पंक्ति एकल स्तंभ मान अर्थात एकल मान लौटाएगा। यह डेटाबेस से एकल मान प्राप्त करने के लिए बहुत तेज़ है। (अधिक पढ़ें)
ExecuteReader कमांड ऑब्जेक्ट का उपयोग करते हुए SQL क्वेरी या संग्रहीत प्रक्रिया के निष्पादन पर पंक्तियों के सेट को वापस करने के लिए उपयोग किया जाएगा। यह केवल अभिलेखों की पुनर्प्राप्ति के लिए आगे है और इसका उपयोग तालिका मानों को पहली से आखिरी तक पढ़ने के लिए किया जाता है। (अधिक पढ़ें)
ExecuteNonQuery: आम तौर पर तब इस्तेमाल किया जाता है जब एसक्यूएल स्टेटमेंट्स में कुछ भी नहीं डाला जाता है जैसे कि इंसर्ट, अपडेट, डिलीट ऑपरेशंस।
cmd.ExcecuteNonQuery();
ExecuteScalar:
इसका उपयोग तब किया जाएगा जब Sql क्वेरी एकल मान लौटाती है।
Int b = cmd.ExcecuteScalar();
ExecuteReader
इसका उपयोग तब किया जाएगा जब Sql query या Stored Procedure कई पंक्तियों / कॉलमों को लौटाता है
SqlDataReader dr = cmd.ExecuteReader();
अधिक जानकारी के लिए आप यहां क्लिक कर सकते हैं http://www.dotnetqueries.com/Article/148/-difference-between-executescalar-executereader-executenonquery