Freigeben über


SqlDataReader.Close-Methode

Schließt das SqlDataReader-Objekt.

Namespace: System.Data.SqlClient
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Overrides Sub Close
'Usage
Dim instance As SqlDataReader

instance.Close
public override void Close ()
public:
virtual void Close () override
public void Close ()
public override function Close ()

Hinweise

Nachdem Sie die Verwendung des SqlDataReader beendet haben, müssen Sie explizit die Close-Methode aufrufen, damit die zugeordnete SqlConnection für andere Zwecke verwendet werden kann.

Die Close-Methode füllt die Werte für Ausgabeparameter, Rückgabewerte und RecordsAffected aus, wodurch die Zeit für das Schließen eines SqlDataReader, der für das Verarbeiten einer großen oder komplizierten Abfrage verwendet wurde, verlängert wird. Wenn die Rückgabewerte und die Anzahl der durch eine Abfrage beeinflussten Datensätze nicht unmittelbar von Bedeutung sind, können Sie die Zeit für das Schließen des SqlDataReader reduzieren, indem Sie die Cancel-Methode des zugeordneten SqlCommand-Objekts aufrufen, bevor Sie die Close-Methode aufrufen.

Warnung

Für ein Connection-Objekt, ein DataReader-Objekt oder ein anderes verwaltetes Objekt dürfen Close oder Dispose nicht in der Finalize-Methode der Klasse aufgerufen werden. In einem Finalizer dürfen Sie nur nicht verwaltete Ressourcen freigeben, die im direkten Besitz der Klasse sind. Wenn die Klasse keine nicht verwalteten Ressourcen besitzt, nehmen Sie keine Finalize-Methode in die Klassendefinition auf. Weitere Informationen finden Sie unter Garbage Collection.

Beispiel

Im folgenden Beispiel wird eine SqlConnection, ein SqlCommand und ein SqlDataReader erstellt. Im Beispiel werden die Daten gelesen und im Konsolenfenster ausgegeben. Danach wird der SqlDataReader geschlossen. Der SqlConnection wird am Ende des using-Codeblocks automatisch geschlossen.

Private Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call Read before accessing data.
        While reader.Read()
            Console.WriteLine(String.Format("{0}, {1}", _
                reader(0), reader(1)))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub
private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

SqlDataReader-Klasse
SqlDataReader-Member
System.Data.SqlClient-Namespace

Weitere Ressourcen

Verbinden und Abrufen von Daten mit ADO.NET
Verwenden des .NET Framework-Datenanbieters für SQL Server