Share via


SqlDataReader.Close Método

Definición

Cierra el objeto SqlDataReader.

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

Implementaciones

Ejemplos

En el ejemplo siguiente se crea un SqlConnectionobjeto , y SqlCommand.SqlDataReader En el ejemplo se leen los datos y se escribe en la ventana de la consola. A continuación, el código cierra .SqlDataReader SqlConnection Se cierra automáticamente al final del using bloque de código.

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();
                }
            }
        }
    }
}

Comentarios

Debe asegurarse de que se llama al Close método cuando se usa antes SqlDataReader de usar el asociado SqlConnection para cualquier otro propósito. El Close método puede llamarse directamente o a través del Dispose método, desechando directamente o en el contexto del bloque de instrucciones using .

El Close método rellena los valores de los parámetros de salida, los valores devueltos y RecordsAffected en mediante el SqlDataReader consumo de los resultados pendientes. Puede ser una operación larga en función de la cantidad de datos que se van a consumir. Si los valores de salida, los valores devueltos y RecordsAffected no son importantes para la aplicación, el tiempo de cierre se puede acortar llamando al Cancel método del objeto asociado SqlCommand antes de llamar al Close método .

Precaución

No llame a Close o Dispose en una conexión, un Objeto DataReader o cualquier otro objeto administrado en el método de la Finalize clase . En un finalizador, solo debe liberar recursos no administrados que su clase posee directamente. Si la clase no dispone de recursos no administrados, no incluya un método Finalize en la definición de clase. Para obtener más información, consulte Recolección de elementos no utilizados.

Se aplica a