SqlDataReader.Close Metod

Definition

Stänger objektet SqlDataReader .

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

Implementeringar

Exempel

I följande exempel skapas en SqlConnection, en SqlCommandoch en SqlDataReader. Exemplet läser igenom data och skriver ut dem till konsolfönstret. Koden stänger SqlDataReadersedan . SqlConnection Stängs automatiskt i slutet av kodblocketusing.

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

Kommentarer

Du måste uttryckligen Close anropa metoden när du använder SqlDataReader för att använda den associerade SqlConnection för något annat ändamål.

Metoden Close fyller i värdena för utdataparametrar, returvärden och RecordsAffected, vilket ökar den tid det tar att stänga en SqlDataReader som användes för att bearbeta en stor eller komplex fråga. När returvärdena och antalet poster som påverkas av en fråga inte är betydande kan den tid det tar att stänga SqlDataReader minskas genom att anropa Cancel metoden för det associerade SqlCommand objektet innan metoden anropas Close .

Caution

Anropa Close inte eller Dispose på en anslutning, en DataReader eller något annat hanterat objekt i -metoden för Finalize din klass. I en finalizer bör du bara släppa ohanterade resurser som klassen äger direkt. Om klassen inte äger några ohanterade resurser ska du inte inkludera någon Finalize metod i din klassdefinition. Mer information finns i Skräpinsamling.

Gäller för

Se även