Nice-books.net
» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Тут можно читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных год 2004. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте Nice-Books.Ru (NiceBooks) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

namespace AuoLot.Dal.DataOperations

{

  public class InventoryDal

  {

    private readonly string _connectionString;

    public InventoryDal() : this(

      @"Data Source=.,5433;User Id=sa;Password=P@ssw0rd;

      Initial Catalog=AutoLot")

    {

    }

    public InventoryDal(string connectionString)

      => _connectionString = connectionString;

  }

}

Открытие и закрытие подключения

Добавьте переменную уровня класса, которая будет хранить подключение, применяемое кодом доступа к данным. Добавьте также два метода: один для открытия подключения (OpenConnection()) и еще один для закрытия подключения (CloseConnection()). В методе CloseConnection() проверьте состояние подключения и если оно не закрыто, тогда вызовите метод Close() на объекте подключения. Вот как выглядит код:

private SqlConnection _sqlConnection = null;

private void OpenConnection()

{

  _sqlConnection = new SqlConnection

  {

    ConnectionString = _connectionString

  };

  _sqlConnection.Open();

}

private void CloseConnection()

{

  if (_sqlConnection?.State != ConnectionState.Closed)

  {

    _sqlConnection?.Close();

  }

}

Ради краткости в большинстве методов класса InventoryDal не будут применяться блоки try/catch для обработки возможных исключений, равно как не будут генерироваться специальные исключения для сообщения о разнообразных проблемах при выполнении (скажем, неправильно сформированная строка подключения). Если бы строилась библиотека доступа к данным производственного уровня, то определенно пришлось бы использовать приемы структурированной обработки исключений (как объяснялось в главе 7), чтобы учесть любые аномалии времени выполнения.

Добавление реализации IDisposable

Добавьте к определению класса интерфейс IDisposable:

public class InventoryDal : IDisposable

{

  ...

}

Затем реализуйте шаблон освобождения, вызывая Dispose() на объекте SqlConnection:

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

bool _disposed = false;

protected virtual void Dispose(bool disposing)

{

  if (_disposed)

  {

    return;

  }

  if (disposing)

  {

    _sqlConnection.Dispose();

  }

  _disposed = true;

}

public void Dispose()

{

  Dispose(true);

  GC.SuppressFinalize(this);

}

Добавление методов выборки

Для начала объедините имеющиеся сведения об объектах команд, чтения данных и обобщенных коллекциях, чтобы получить записи из таблицы Inventory. Как было показано в начале главы, объект чтения данных в поставщике делает возможной выборку записей с использованием механизма, который реализует только чтение в прямом направлении с помощью метода Read(). В этом примере свойство CommandBehavior класса DataReader настроено на автоматическое закрытие подключения, когда закрывается объект чтения данных. Метод GetAllInventory() возвращает экземпляр List<CarViewModel>, представляющий все данные в таблице Inventory:

public List<CarViewModel> GetAllInventory()

{

  OpenConnection();

  // Здесь будут храниться записи.

  List<CarViewModel> inventory = new List<CarViewModel>();

  // Подготовить объект команды.

  string sql =

    @"SELECT i.Id, i.Color, i.PetName,m.Name as Make

          FROM Inventory i

          INNER JOIN Makes m on m.Id = i.MakeId";

  using SqlCommand command =

    new SqlCommand(sql, _sqlConnection)

    {

      CommandType = CommandType.Text

    };

  command.CommandType = CommandType.Text;

  SqlDataReader dataReader =

    command.ExecuteReader(CommandBehavior.CloseConnection);

  while (dataReader.Read())

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки Nice-Books.Ru.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор Nice-Books.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*