Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SqlConnection SqlCommand SqlDataReader IDisposable

C'est 100% la bonne façon. Si une classe utilise IDisposable il doit être enveloppé dans un using pour s'assurer que le Dispose() méthode est appelée. De plus, la communication avec une technologie extérieure - non gérée en plus - comme SQL Server ne doit pas être prise à la légère. La SqlCommand objet implémente IDisposable pour une très bonne raison. Le code ci-dessous est le Dispose() méthode pour SqlCommand objet :

protected override void Dispose(bool disposing)
{
    if (disposing)
    {
        this._cachedMetaData = null;
    }
    base.Dispose(disposing);
}

et comme vous pouvez le voir, il libère une référence au _cachedMetaData objet afin qu'il puisse également être nettoyé.