Partager via


SqlDataReader.Close Méthode

Définition

Ferme l'objet SqlDataReader.

public:
 override void Close();
public override void Close ();
override this.Close : unit -> unit
Public Overrides Sub Close ()

Implémente

Exemples

L’exemple suivant crée un SqlConnection, un SqlCommandet un SqlDataReader. L’exemple lit les données et les écrit dans la fenêtre de console. Le code ferme ensuite .SqlDataReader est SqlConnection fermé automatiquement à la fin du bloc de using code.

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }
    private static void ReadOrderData(string connectionString)
    {
        string queryString =
            "SELECT OrderID, CustomerID FROM dbo.Orders;";

        using (SqlConnection connection =
                   new SqlConnection(connectionString))
        {
            connection.Open();

            using (SqlCommand command =
                new SqlCommand(queryString, connection))
            {
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    // Call Read before accessing data.
                    while (reader.Read())
                    {
                        Console.WriteLine(String.Format("{0}, {1}",
                            reader[0], reader[1]));
                    }

                    // Call Close when done reading.
                    reader.Close();
                }
            }
        }
    }
}

Remarques

Vous devez vous assurer que la Close méthode est appelée lorsque vous utilisez le SqlDataReader avant d’utiliser le associé SqlConnection à d’autres fins. La Close méthode peut être appelée directement ou par le biais de la Dispose méthode , en supprimant directement ou dans le contexte du bloc d’instructions using .

La Close méthode remplit les valeurs des paramètres de sortie, des valeurs de retour et RecordsAffected sur le SqlDataReader en consommant tous les résultats en attente. Il peut s’agir d’une opération longue en fonction de la quantité de données à consommer. Si les valeurs de sortie, les valeurs de retour et RecordsAffected ne sont pas importantes pour votre application, la durée de fermeture peut être raccourcie en appelant la Cancel méthode de l’objet associé SqlCommand avant l’appel de la Close méthode.

Attention

N’appelez Close pas ou Dispose sur une connection, un DataReader ou tout autre objet managé dans la Finalize méthode de votre classe. Dans un finaliseur, vous devez libérer uniquement les ressources non managées que votre classe possède directement. Si votre classe ne possède pas de ressource non managée, n'incluez pas une méthode Finalize dans la définition de classe. Pour plus d’informations, consultez Nettoyage de la mémoire.

S’applique à