SeverConnection.Cancel()
विधि इसी तरह काम करता है SqlCommand.Cancel()
विधि के लिए और Documentation कहता है:
अगर वहाँ रद्द करने के लिए कुछ भी नहीं है, कुछ भी नहीं होता है। हालांकि, यदि प्रक्रिया में कोई आदेश है, और रद्द करने का प्रयास विफल रहता है, तो कोई अपवाद उत्पन्न नहीं होता है।
कुछ में, दुर्लभ, मामलों, अगर आप ExecuteReader फोन फिर बंद बुला रद्द करने से पहले फोन (implicitily या स्पष्ट रूप से), और फिर फोन रद्द, रद्द आदेश एसक्यूएल सर्वर के लिए नहीं भेजा जाएगा और परिणाम सेट कर सकते हैं बंद करने के बाद स्ट्रीम करना जारी रखें। इससे बचने के लिए, सुनिश्चित करें कि आप पाठक को बंद करने से पहले रद्द करें या कनेक्शन।
मतलब है कि रद्द विधि काम करेगी, आप close()
विधि करने के लिए कॉल करने से पहले इसे कहते हैं।
आप के बाद इसे कहते हैं, आदेश एसक्यूएल में जिसके परिणामस्वरूप के लिए नहीं भेजा जाएगा एसक्यूएल करने के लिए धारा जारी है close()
विधि कॉल करने के बाद।
इसके अलावा, अगर वहाँ की प्रक्रिया में एक आदेश है और रद्द करने के लिए प्रयास विफल रहता है, तो आपको एक त्रुटि के रूप में भी इसका अपवाद नहीं इस तरह के मामले में उत्पन्न होता है प्राप्त नहीं होगा।
स्रोत
2017-12-18 11:27:23
मैं एसएमओ से बचने की सलाह देता हूं। इसमें पूरी तरह से थ्रेड सुरक्षित नहीं होने सहित समस्याओं की पूरी मेजबानी है। मैंने इसे फेंक दिया और 'sys.' विचारों के साथ सबकुछ किया। –
शायद आप सर्वर कनेक्शन को डिस्कनेक्ट करना चाहते हैं? https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.common.connectionmanager.disconnect – Chuck
एसक्यूएल प्रोफाइलर यह स्पष्ट नहीं करता है कि यह क्या करता है। जो कुछ भी करता है, वह SQL प्रोफाइलर में लॉगआउट ईवेंट के रूप में दिखाई नहीं देता है, या कुछ और जिसे मैं समझ सकता हूं। मैं कनेक्शन रद्द कर सकता हूं और फिर जारी रख सकता हूं कि मैं किसी भी त्रुटि को फेंक दिए बिना क्या कर रहा था। मैं जोनाथन एलन के साथ हूँ। एसएमओ के बिना करो। – quest4truth