aide sur SQLDataReader

Je sais, j'ai posé une question relative à la précédente. J'ai juste eu une autre pensée.

using (SqlConnection conn = new SqlConnection('blah blah'))
{
    using(SqlCommand cmd = new SqlCommand(sqlStatement, conn))
    {
        conn.open();

        //*** do I need to put this in using as well? ***
        SqlDataReader dr = cmd.ExecuteReader() 
        {
            While(dr.Read())
            {
                //read here
            }
        }
    }
}

L'argument est que: Depuis le SqlDataReader dr objet n'est PAS UN OBJET similaire à celui de LA connexion ou des objets de commande, il s'agit tout simplement d'une référence vers le cmd.ExecuteReader() méthode, dois-je mettre le lecteur à l'intérieur d'un using. (Maintenant basé sur mon post précédent, c'est ma compréhension que tout objet qui utilise IDisposable doit être mis dans un using, et SQLDataReader hérite de IDisposable, donc j'ai besoin de le mettre. Ai-je raison de mon jugement?) Je suis juste confus puisque ce n'est pas un nouvel objet, serait-il la cause des problèmes à l'aliénation d'un objet qui est tout simplement un pointeur de référence pour la commande?

Merci beaucoup

"cmd.ExecuteReader" est une sorte de méthode de référence. "cmd.ExecuteReader()" (avis entre parenthèses) est un appel de méthode.

OriginalL'auteur xeshu | 2010-08-02