विधि को देखते हुए:एसक्यूएलकनेक्शन का निपटारा/बंद क्यों नहीं किया गया है?
internal static DataSet SelectDataSet(String commandText, DataBaseEnum dataBase)
{
var dataset = new DataSet();
SqlConnection sqlc = dataBase == DataBaseEnum.ZipCodeDb
? new SqlConnection(ConfigurationManager.AppSettings["ZipcodeDB"])
: new SqlConnection(ConfigurationManager.AppSettings["WeatherDB"]);
SqlCommand sqlcmd = sqlc.CreateCommand();
sqlcmd.CommandText = commandText;
var adapter = new SqlDataAdapter(sqlcmd.CommandText, sqlc);
adapter.Fill(dataset);
return dataset;
}
क्यों sqlc (SqlConnection) निपटारा नहीं किया गया है के बाद/बंद बुला विधि के दायरे या sqlc कोई और अधिक संदर्भ होते हैं बाहर चला जाता है?
संपादित करें 1: भी उपयोग करने में यह लपेटकर, मैं अभी भी का उपयोग कर कनेक्शन (मैं है कनेक्शन पूलिंग बंद कर दिया) देखकर कर सकते हैं:
SELECT DB_NAME(dbid) as 'Database Name',
COUNT(dbid) as 'Total Connections'
FROM sys.sysprocesses WITH (nolock)
WHERE dbid > 0
GROUP BY dbid
संपादित करें 2: साथ कुछ और डिबगिंग है सहायता यहां से मिली - जवाब किसी को पूलिंग के साथ कनेक्शन स्ट्रिंग को कड़ी मेहनत कर रहा था। सभी मदद के लिए धन्यवाद - अगर मैं कर सकता, तो मैं सभी प्रतिक्रियाओं को उत्तर के रूप में चिह्नित करूंगा।
+1 साफ जवाब के लिए, मेरे से बेहतर। –