Udostępnij za pośrednictwem


SqlDataReader.Close Metoda

Definicja

SqlDataReader Zamyka obiekt.

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

Implementuje

Przykłady

W poniższym przykładzie jest tworzony element SqlConnection, a SqlCommandi SqlDataReader. Przykład odczytuje dane, zapisuj je w oknie konsoli. Następnie kod zamyka plik SqlDataReader. Element SqlConnection jest zamykany automatycznie na końcu using bloku kodu.

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

Uwagi

Należy upewnić się, że metoda jest wywoływana Close , gdy używasz elementu przed użyciem SqlDataReader skojarzonego z innymi celami SqlConnection . Metoda Close może być wywoływana bezpośrednio lub za pośrednictwem Dispose metody, bezpośrednio lub w kontekście bloku instrukcji using .

Metoda Close wypełnia wartości parametrów wyjściowych, zwraca wartości i RecordsAffected na SqlDataReader podstawie, zużywając wszelkie oczekujące wyniki. Może to być długa operacja w zależności od ilości danych, które mają być używane. Jeśli wartości wyjściowe, wartości zwracane i RecordsAffected nie są ważne dla aplikacji, czas zamknięcia może zostać skrócony przez wywołanie metody skojarzonego SqlCommand obiektu przed Close wywołaniem Cancel metody .

Przestroga

Nie należy wywoływać ani Dispose nie wywoływać Close połączenia, elementu DataReader ani żadnego innego zarządzanego obiektu w Finalize metodzie klasy. W finalizatorze należy wydać tylko niezarządzane zasoby, które są właścicielem klasy bezpośrednio. Jeśli klasa nie jest właścicielem żadnych niezarządzanych zasobów, nie dołączaj Finalize metody do definicji klasy. Aby uzyskać więcej informacji, zobacz Odzyskiwanie pamięci.

Dotyczy