2010-05-14 9 views
15

मैं यह जानता हूँ एक उपयोगी सवाल का एक नरक नहीं है, लेकिन मैं इसे द्वारा bugged किया जा रहा मदद नहीं कर सकता।"ExecuteNonQuery" में "गैर" क्यों?

तो,
क्यों कहा विधि (*Command कक्षाओं में)
ExecuteNonQueryExecuteQuery के बजाय कहा जाता है?

उन SQL कथन हम डीबीएस में फेंक, प्रश्नों नहीं हैं?

उत्तर

15

शब्दार्थ एक प्रश्न कुछ आप डेटा लौटाने के लिए निष्पादित है। आप डेटाबेस 'की क्वेरी' वाई

में सभी एक्स को खोजने के लिए तुम वापस परिणामों की उम्मीद नहीं कर रहे हैं कर रहे हैं, यह नहीं इतना एक प्रश्न है के रूप में यह एक बयान या आदेश है।

+0

लेकिन यह एक चयन हो सकता है। तो क्यों न सिर्फ "myCommand.Execute()"? –

+0

@ कैमिलो: क्योंकि ExecuteReader() है जो एकल-मूल्यवान परिणामों के लिए आपकी क्वेरी के परिणाम, या यहां तक ​​कि ExecuteScalar() वापस कर देगा। –

+0

धन्यवाद, मुझे ExecuteScalar के बारे में पता नहीं था :) –

1

नहीं अगर वे आवेषण, हटाता है, बनाएं तालिकाओं कर रहे हैं, आदि

+0

लेकिन एक विधि है कि ** ** एक प्रश्न (अर्थात, चयन) ExecuteNonQuery नहीं बुलाया जाना चाहिए निष्पादित कर सकते हैं। यही मुझे परेशान करता है। –

+2

यह * 'SELECT' निष्पादित कर सकता है, लेकिन' SELECT' के साथ 'ExecuteNonQuery' का उपयोग करने का कोई मतलब नहीं है, क्योंकि यह वास्तव में परिणाम नहीं देता है। –

+2

@ कैमिलो डीबी कक्षाओं को यह नहीं पता कि आपको डीबी ऑब्जेक्ट को स्पष्ट रूप से बताते हुए एक प्रतिक्रिया की आवश्यकता है कि आप उम्मीद नहीं करते कि कुछ भी वापस अनुकूलन के लिए जगह बनाता है। आप देव-चुने बयान से लौटे कुछ भी नहीं चाहते हो सकता है के रूप में (में चयन * के लिए ...) –

0

मैं इसके बारे में लगता है के रूप में एक प्रश्न के रिकॉर्ड के लिए डेटाबेस वापस पूछ रहा है होगा। डेटा/डेटाबेस को बदलने वाली कार्रवाइयां एक क्वेरी नहीं होंगी।

संबंधित मुद्दे