Поделиться через


SqlDataReader.Close Метод

Определение

Закрывает объект 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 ()

Реализации

Примеры

В следующем примере создаются SqlConnection, и SqlCommandSqlDataReader. Пример считывает данные, записывая их в окно консоли. Затем код закрывает SqlDataReader. Автоматически SqlConnection закрывается в конце using блока кода.

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

Комментарии

При использовании SqlDataReader необходимо явно вызвать Close метод , чтобы использовать связанный SqlConnection объект для любых других целей.

Метод Close заполняет значения выходных параметров, возвращаемых значений и RecordsAffected, увеличивая время, необходимое для закрытия SqlDataReader , которое использовалось для обработки большого или сложного запроса. Если возвращаемые значения и количество записей, затронутых запросом, не являются значительными, время, необходимое для закрытия SqlDataReader , можно уменьшить путем вызова Cancel метода связанного SqlCommand объекта перед вызовом Close метода .

Внимание!

Не вызывайте Close метод connection Dispose , DataReader или любой другой управляемый объект в методе Finalize класса . В средстве завершения следует освобождать только неуправляемые ресурсы, которыми ваш класс владеет напрямую. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize. Дополнительные сведения см. в статье Сборка мусора.

Применяется к

См. также раздел