SqlDataReader.Close Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.