Sdílet prostřednictvím


SqlDataReader.Close Metoda

Definice

SqlDataReader Zavře objekt.

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

Implementuje

Příklady

Následující příklad vytvoří SqlConnection, SqlCommanda .SqlDataReader Příklad přečte data a zapíše je do okna konzoly. Kód pak zavře .SqlDataReader Objekt SqlConnection se automaticky zavře na konci using bloku kódu.

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

Poznámky

Musíte zajistit, aby byla Close metoda volána, když používáte před použitím SqlDataReader přidruženého SqlConnection pro jakýkoli jiný účel. Metoda Close může být volána buď přímo, nebo prostřednictvím Dispose metody, a to přímo nebo v kontextu bloku příkazů using .

Metoda Close naplní hodnoty výstupních parametrů, návratových hodnot a RecordsAffected na hodnotě tím, že SqlDataReader spotřebuje všechny čekající výsledky. Může se jednat o dlouhou operaci v závislosti na množství dat, která se mají spotřebovat. Pokud výstupní hodnoty, návratové hodnoty a RecordsAffected nejsou pro vaši aplikaci důležité, může být doba uzavření zkrácena voláním Cancel metody přidruženého SqlCommand objektu před voláním Close metody.

Upozornění

Nevolejte Close ani Dispose na Připojení, DataReader ani žádný jiný spravovaný objekt v Finalize metodě vaší třídy. V finalizátoru byste měli uvolnit pouze nespravované prostředky, které vaše třída vlastní přímo. Pokud vaše třída nevlastní žádné nespravované prostředky, nezahrnujte metodu Finalize do definice třídy. Další informace najdete v tématu Uvolňování paměti.

Platí pro