अपने वर्तमान उपयोग में, यह आप के लिए बंद हो जाएगा:
IDbConnection बंद है, तो इससे पहले कि भरण कहा जाता है, यह डेटा पुनः प्राप्त करने के लिए खोला जाता है और तो बंद कर दिया। यदि भरने से पहले कनेक्शन खुला है, तो खुला रहता है।
http://msdn.microsoft.com/en-us/library/zxkb3c3d.aspx
मुझे लगता है कि यह हमेशा बेहतर है स्पष्ट रूप से एक using
बयान के साथ अपने आप को इसके लिए पूरा करने के लिए:
using (SqlConnection conn = new SqlConnection(""))
{
conn.Open();
// Do Stuff.
} // Closes here on dispose.
इस बार अधिक पठनीय है और अंदरूनी कामकाज को समझने के लोगों पर निर्भर नहीं करता SqlDataAdapter.Fill
, बस using
कथन और कनेक्शन।
हालांकि, अगर आप जानते हैं एडाप्टर इसका उपयोग करने से पहले कनेक्शन बंद हो जाता है (जैसा कि आपने अभी कनेक्शन बनाया है) और इसका उपयोग किसी और चीज़ के लिए नहीं किया जाता है, तो आपका कोड पूरी तरह से सुरक्षित और मान्य है।
string cnStr = "Data Source=TEST;Initial Catalog=Suite;Persist Security Info=True;User ID=app;Password=Immmmmm";
DataSet ds = new DataSet();
using (SqlConnection cn = new SqlConnection(cnStr))
using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 * FROM Date", cn))
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
conn.Open();
adapter.Fill(ds);
}
स्रोत
2011-09-12 13:36:03
लेकिन अगर मैं वास्तव में समारोह – Wachburn
@Wachburn के निकास से पहले जो कुछ भी बंद कर दिया है राज्य cn निर्माण का उपयोग किए बिना इस कोड लिखने, और परामर्श MSDN इस पुष्टि करता है। क्षमा करें, मैंने इसे पहली बार पकड़ नहीं लिया। –
यदि आदेश सफलतापूर्वक निष्पादित किया गया है, तो यह आपके लिए बंद कर देता है, लेकिन अपवाद मामले में क्या है? (डेडलॉक, टाइमआउट, इत्यादि) –