I've had a suspicion that a database connection used in one of our applications is not always closed. I went to see the code and I've found a class DataProvider
that has SqlConnection
object. The connection is opened in the constructor of this class and closed in it's Dispose
method (don't judge that, I know keeping an open connection is evil, it's just not my code and it's not the point of the question anyway). The Dispose
method is implemented like this:
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (_conn != null)
_conn.Close();
}
_disposed = true;
}
}
The question is:
Does it always guarantee that the connection is closed?
Is this code right?
I think there should be _conn.Dispose()
called - am I right and could it affect not closing the connection (probably not)?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…