Condividi tramite


SqlDataReader.Close Metodo

Definizione

Chiude l'oggetto SqlDataReader.

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

Implementazioni

Esempio

Nell'esempio seguente viene creato un SqlConnectionoggetto , un SqlCommandoggetto e un oggetto SqlDataReader. L'esempio legge i dati, scrivendoli nella finestra della console. Il codice chiude quindi .SqlDataReader L'oggetto SqlConnection viene chiuso automaticamente alla fine del blocco di using codice.

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

Commenti

È necessario assicurarsi che il Close metodo venga chiamato quando si usa prima SqlDataReader di usare l'oggetto associato SqlConnection per qualsiasi altro scopo. Il Close metodo può essere chiamato direttamente o tramite il Dispose metodo, eliminando direttamente o nel contesto del blocco di istruzioni using .

Il Close metodo popola i valori per i parametri di output, i valori restituiti e RecordsAffected l'oggetto SqlDataReader utilizzando i risultati in sospeso. Può trattarsi di un'operazione lunga a seconda della quantità di dati da utilizzare. Se i valori di output, i valori restituiti e RecordsAffected non sono importanti per l'applicazione, il tempo di chiusura può essere abbreviato chiamando il Cancel metodo dell'oggetto associato SqlCommand prima che venga chiamato il Close metodo .

Attenzione

Non chiamare Close o Dispose su un oggetto Connection, un DataReader o qualsiasi altro oggetto gestito nel Finalize metodo della classe. In un finalizzatore è consigliabile rilasciare direttamente le risorse non gestite di proprietà della classe. Se nella classe non sono presenti risorse non gestite, non includere un metodo Finalize nella relativa definizione della classe. Per altre informazioni, vedere Garbage Collection.

Si applica a