2009-03-09 17 views
8

स्पष्ट रूप से (MSDN) कभी-कभी OleDbConnection.ResetState() कुछ भी नहीं करता है, भले ही कनेक्शन OleDbConnection में विफल हो जाए। स्टेट अभी भी खोलने के लिए सेट हो जाएगा। मैं इसके लिए सबसे अच्छा कामकाज ढूंढ रहा हूं, ताकि जब मैं कनेक्शन स्थिति की जांच करूँ, तो मैं अपवादों को बढ़ाने से बच सकता हूं (जब तक कि अंतिम चेक और उपयोग प्रयास के बीच कनेक्शन विफल नहीं हुआ हो)।OleDbConnection स्थिति की जांच करने का सबसे अच्छा तरीका

क्या कोई अपवाद फेंक दिया गया है या नहीं, यह देखने के लिए हर बार "बेकार" एसक्यूएल स्टेटमेंट भेजने से बेहतर कुछ नहीं है? आप वास्तव में इसका उपयोग करने से पहले सुनिश्चित करते हैं कि आपका कनेक्शन खुला है?

+0

यह वास्तव में एक अच्छा सवाल है। –

+0

@Robert - यह वास्तव में है! –

उत्तर

5

आपके मामले में मैं क्या करना होगा निम्नलिखित:

  1. यकीन है कि अगर कनेक्शन है उपयोग करने से पहले "वास्तव में" खुला होने परेशान न हों: यह वैसे भी समय के सबसे अधिक हो जाएगा, और आप करेंगे सर्वर
  2. पर प्रत्येक बेकार राउंडट्रिप्स को छोड़ दें, लेकिन प्रत्येक बार जब आप कनेक्शन का उपयोग करते हैं तो किसी भी अपवाद की जांच करें (प्रतिलिपि/पेस्ट से बचने के लिए सहायक तरीके बनाएं)
  3. यदि आपके पास अपवाद है, तो अपना "बेकार" कथन भेजें डेटाबेस कनेक्शन "असली" स्थिति की जांच करने के लिए। मैं ऐसा इसलिए करूँगा क्योंकि जब सर्वर से कनेक्शन खो जाता है तो अपवादों का प्रकार कभी-कभी आश्चर्यजनक हो सकता है (कनेक्शन टूटने के समय क्या हो रहा है इसके आधार पर)

आशा है कि इससे मदद मिलती है।

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