मैंने देखा है कि System.Data.SQLite
में SQLiteConnection
वस्तु इसी तरह के दो तरीकों का मालिक:कनेक्शन के बीच क्या अंतर है। बंद करें() और कनेक्शन। Disis()?
Close()
Dispose()
SQLiteDataReader
वस्तु के लिए एक ही।
क्या अंतर है?
मैंने देखा है कि System.Data.SQLite
में SQLiteConnection
वस्तु इसी तरह के दो तरीकों का मालिक:कनेक्शन के बीच क्या अंतर है। बंद करें() और कनेक्शन। Disis()?
Close()
Dispose()
SQLiteDataReader
वस्तु के लिए एक ही।
क्या अंतर है?
Dispose
कनेक्शन बंद कर देता है अगर यह बंद नहीं किया गया है, लेकिन Close
पर कॉल करते समय, आप फिर से कनेक्शन को फिर से खोल सकते हैं। जब कनेक्शन का निपटारा किया जाता है तो यह संभव नहीं है।
सामान्य तौर पर, Close
फोन नहीं है, लेकिन बस परोक्ष निपटान के फोन एक using
ब्लॉक में एक कनेक्शन के निर्माण लपेटकर द्वारा:
using (var connection = new SqlConnection(...))
{
// use connection here.
} // connection gets closed and disposed here.
Connection.Close() बस सर्वर से कनेक्शन बंद हो जाएगा कनेक्शन स्ट्रिंग में परिभाषित के रूप में। इस बिंदु के बाद कनेक्शन का उपयोग/पुनः खोला जा सकता है।
Connection.Dispose()
पूरी तरह से साफ हो जाएगा, कनेक्शन को फिर से उपयोग करने से रोकने वाले सभी अप्रबंधित संसाधनों को हटा देगा। एक बार निपटान करने के बाद आपको ऑब्जेक्ट का उपयोग करने की कोशिश नहीं करनी चाहिए। Dispose(),
के भीतर बंद करें() `सभी को निश्चित रूप से भी बुलाया जाएगा।
मैं तो यदि संभव हो तो जैसे using
सिंटेक्स के उपयोग की सलाह देते हैं, यह सुनिश्चित करने के चीजों को सही ढंग से साफ हो जाने:
using(SqlLiteConnection conn = new SqlLiteConnection(...))
{
// Do work here
}
यह स्वचालित रूप से, आप के लिए कनेक्शन के निपटान होगा एक अपवाद की परवाह किए बिना फेंक दिया जा रहा है।
एक सूक्ष्म अंतर 'बंद' उस कनेक्शन पर 'GC.SuppressFinalize' विधि को कॉल नहीं करेगा, जबकि 'निपटान' उस विधि को कॉल करता है। कनेक्शन का निपटारा नहीं करने से कनेक्शन ऑब्जेक्ट को ज़्यादा लंबे समय तक जीवित रखा जाएगा। इसका कनेक्शन पूल पर कोई प्रभाव नहीं पड़ता है, लेकिन स्मृति पर है। अंतर- 'SqlConnection' के मामले में- हालांकि उपेक्षित होगा। – Steven
धन्यवाद, यह अब मेरे लिए अधिक स्पष्ट है (डुप्लिकेट के लिए खेद है) – Epoc
शायद यह मदद करता है: http://stackoverflow.com/questions/61092/close-and-dispose-which-to-call – Micha
धन्यवाद, मुझे यह पोस्ट नहीं मिला! – Epoc