Close

Метод закрывает объект DbDataReader.

Всегда нужно вызывать метод Close по окончании работы с объектом DbDataReader, потому что в противном случае объект DbDataReader будет удерживать ресурсы до тех пор, пока не будет закрыто соединение, которое используется для выполнения команды.

Для закрытия объекта DbDataReader надо использовать оператор using или блок try...finally (см. приложение 1).

Синтаксис
public abstract void Close();
Возвращаемое значение

Значение типа void.

Исключения

Отсутствуют.

Пример
// C#
using System;
using System.Data;
using System.Data.Common;

class CloseSample
{
  static void Main()
  {
    DbProviderFactory factory = null;
    DbConnection con = null;
    DbCommand cmd = null;
    DbDataReader reader = null;
    try
    {
      // Создание фабрики классов провайдера
      factory = DbProviderFactories.GetFactory("System.Data.LinterClient");
      // Соединение с БД
      con = factory.CreateConnection();
      con.ConnectionString =
        "User ID=SYSTEM;Password=MANAGER8;Data Source=LOCAL";
      con.Open();
      // Создание объекта DbCommand
      cmd = factory.CreateCommand();
      cmd.Connection = con;
      // Формирование текста SQL-запроса
      cmd.CommandText = "select * from some_table";
      // Выполнение SQL-запроса
      reader = cmd.ExecuteReader();
      // Обработка результатов запроса
      while (reader.Read())
      {
        for (int i = 0; i <  reader.FieldCount; i++)
        {
          Console.Write(reader.GetValue(i) + "\t");
        }
        Console.WriteLine();
      }
    }
    catch (Exception ex)
    {
      // Обработка исключений
      Console.WriteLine(ex);
    }
    finally
    {
      // Освобождение ресурсов
      if (reader != null)
      {
        reader.Close();
      }
      if (cmd != null)
      {
        cmd.Dispose();
      }
      if (con != null)
      {
        con.Close();
      }
    }
  }
}