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


SqlDataReader.Close Метод

Определение

Закрывает объект SqlDataReader.

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

Реализации

Примеры

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

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

Комментарии

Необходимо убедиться, Close что метод вызывается при использовании SqlDataReader , прежде чем использовать связанный SqlConnection для любой другой цели. Метод Close можно вызывать напрямую или с помощью Dispose метода , непосредственно или в контексте блока операторов using .

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

Внимание!

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

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