मैं एक एएसपी.NET एप्लिकेशन लिख रहा हूं। मेरे datalayer में एक एसक्यूएल कनेक्शन खोला जा रहा है और पूछताछ से पहले और बाद में बंद कर दिया गया है। SqlConnection एक एकल वर्ग के एक निजी क्षेत्र के रूप में रखा जा रहा है। फिर भीकनेक्शन बंद नहीं था, कनेक्शन का वर्तमान स्थिति खुला है
conn.Open();
try
{
// database querying here
}
finally
{
conn.Close();
}
, बहुत दुर्लभ अवसरों मैं अपवाद 'कनेक्शन बंद कर दिया नहीं किया गया मिलता है पर: कक्षा में हर डेटाबेस कॉल एक ही संरचना का उपयोग करता। कनेक्शन की वर्तमान स्थिति खुली है '। समस्या को पुन: उत्पन्न करना संभव नहीं है क्योंकि यह कोड के विभिन्न हिस्सों से बहुत ही कम है। मेरे आवेदन में कुछ थ्रेडिंग शामिल है लेकिन नए थ्रेड भी नए डेटा लेयर क्लासेस और इस प्रकार नई कनेक्शन ऑब्जेक्ट्स बनाते हैं।
मुझे समझ में नहीं आता कि ऊपर दिए गए कोड का उपयोग करके कनेक्शन को खोलने के लिए कैसे संभव है। कनेक्शन को हमेशा खोलने के बाद बंद नहीं किया जाना चाहिए, उपर्युक्त अपवाद के लिए असंभव बनाना?
यहां महत्वपूर्ण बात यह है कि आपकी कॉन ऑब्जेक्ट को तत्काल किया जा रहा है? –
इसके अलावा: 'उपयोग' का उपयोग करने में क्या गलत है? –
बस इसके बजाय एक उपयोग कथन का उपयोग करें? गारंटी बंद और निपटान कनेक्शन है। –