Узнайте, как получать и обновлять данные в базе данных, использовать данные JSON и XML и многое другое.

Привет, народ!

В этой истории будет обсуждаться Задача 4.2: Потребление данных! Я надеюсь, вам понравится это!

В последней Истории была представлена ​​Задача 4.1: Выполнение операций ввода-вывода.

Все коды для сертификационных серий можно найти здесь.

Получать данные из базы данных

Большинство приложений занимаются сбором данных. Например, это может быть информация о пользователях или заказах. Базы данных позволяют это, храня эту информацию в организованном порядке, позволяя клиентским приложениям запрашивать, обновлять, вставлять и удалять данные.

.NET Framework предлагает классы, которые позволяют выполнять такие операции в пространстве имен System.Data. Набор классов, используемых для доступа к данным, называется ADO.NET, и они поддерживают вставку, чтение, обновление и удаление данных в нескольких базах данных с помощью языка структурированных запросов (SQL).

В примерах для этой статьи будут использоваться поставщики данных для SQL Server.

Подключение к базе данных

Прежде чем переходить к тому, как установить соединение с базой данных, важно знать определение строки подключения. Он содержит информацию о выбранной базе данных и дополнительную информацию, такую ​​как имя базы данных, расположение и учетные данные.

Вот пример строки подключения для базы данных SQL Server:

Базовым классом для подключения к базе данных в .NET Framework является DbConnection. SqlConnection наследуется от этого класса и обеспечивает соединение с базой данных SQL Server.

Чтение из базы данных

После установления соединения с базой данных пора запросить некоторые данные. Как было сказано ранее, запросы строятся с использованием SQL.

Рассмотрим следующую структуру таблицы базы данных:

Таблица: Товар

Столбцы:

  • Id
  • Описание
  • Количество
  • Цена

Запустив следующий сценарий, вы можете создать структуру таблицы, указанную выше, и вставить некоторые исходные данные.

Для запроса данных используются классы SqlCommand и SqlDataReader. Первый используется для выполнения SQL-запроса, а второй используется для хранения результата выполнения запроса.

В приведенном ниже коде показан полный пример, устанавливающий соединение с базой данных и получение данных Product с помощью SqlCommand и сохранение данных результатов в SqlDataReader .

Используя такие методы, как GetString и GetInt32, вы можете преобразовать столбцы SqlDataReader в соответствующий тип .NET. Эти методы получают индекс столбца в качестве параметра.

Обновить данные в базе данных

Пришло время обновить ранее запрошенные данные. Мы по-прежнему будем использовать класс SqlCommand. Для обновлений мы можем использовать ExecuteNonQuery ir ExecuteNonQueryAsync методы класса SqlCommand.

В большинстве случаев вы захотите использовать некоторые параметры. Например, вы можете обновить данные об одном продукте, такие как описание или наличие. Вы же не хотите, чтобы команда обновления повлияла на все ваши данные, верно?

Для этого вы можете использовать свойство Parameters класса SqlCommand. Затем имя и значение передаются методу AddWithValue.

В приведенном выше коде показано, как выполнить вставку, обновление и затем удаление. Он также использует параметры запроса.

Использование транзакций

При объединении нескольких операций в цепочку увеличивается риск отказа одной из них. Иногда нежелательно успешно завершать несколько команд, если одна из них не работает. Для этого .NET framework позволяет использовать транзакции.

У транзакции есть четыре основных характеристики, представляющих ACID:

  • Атомарность
  • Последовательность
  • Изоляция
  • Долговечность

Вы можете узнать больше о ACID по ссылке ниже.



«Что означает ACID в системах баз данных?
В системах баз данных (атомарность, согласованность, изоляция, долговечность) относится к стандартному набору свойств, которые… база данных .руководство"



Вы можете реализовать транзакции с помощью класса TransactionScope. Если какие-либо исключения возникают внутри TransactionScope внутри оператора using, откатывается вся транзакция.

Например, предыдущий пример можно переместить в блок using, который будет создавать экземпляр класса TransactionScope. Для этого проверьте код ниже:

Использовать данные JSON и XML

Данные JSON

JSON (нотация объектов JavaScript) - это легкий и открытый стандартный формат для передачи данных между системами. Он предпочтительнее XML, поскольку он намного легче и удобочитаем.

Самый популярный пакет для обработки JSON - это Newtonsoft.Json. Вы можете увидеть пакет, указанный в окне Диспетчер пакетов NuGet ниже.

Вы можете использовать для десериализации (из строки в объект) или сериализации (из объекта в строку) данных с помощью методов JsonConvert.DeserializeObject ‹T› и JsonConvert.SerializeObject соответственно.

Данные XML

XML (Extensible Markup Language) - это язык разметки для хранения данных. Пример XML-документа приведен ниже:

XML-документ начинается с необязательной строки под названием пролог, которая содержит метаданные и информацию о кодировке. Затем содержимое начинается с одного корневого элемента. Под ним может быть несколько дочерних элементов, которые являются отдельными элементами. Эти элементы могут содержать атрибуты, которые представляют собой пары имя-значение.

.NET Framework предлагает классы, которые позволяют анализировать, создавать и обновлять файлы XML. Эти классы расположены в пространстве имен System.Xml . Наиболее важные классы:

  • XmlReader: чтение XML-документа;
  • XmlWriter: запись в XML-документ;
  • XmlDocument: хранит XML-документ в памяти;
  • XPathNavigator: упрощает запросы к данным XML.

В приведенном ниже коде я отображаю свойства XML-документа с помощью XmlReader, XmlDocument и XPathNavigator. Я также создаю XML-документ с помощью XmlWriter.

Получать данные с помощью веб-сервисов

Фонд связи Windows

Несмотря на то, что целью является ПОТРЕБЛЕНИЕ веб-службы, стоит хотя бы понять, что такое Windows Communication Foundation (или просто WCF), чтобы вы могли создать свою собственную и протестировать ее локально.

WCF - это платформа для создания приложений веб-служб, которая поддерживает надежные сообщения, транзакции, REST и AJAX и многое другое. В настоящее время он не так популярен из-за того, что его некрасиво настраивать, и есть лучшие варианты для разработки REST API (например, ASP NET Core API).

Перейдите по ссылке ниже, чтобы узнать, как создать простую службу WCF.



По сути, служба WCF состоит из файлов .svc и файлов кода программной части.



Использование клиента WCF

Чтобы использовать службу WCF из консольного приложения, создайте «Проект службы WCF» в решении. После этого добавьте Ссылку на службу для своего проекта, щелкнув правой кнопкой мыши элемент проекта «Ссылки», а затем нажмите кнопки «Обнаружить» - ›« ОК ».

Будет создан прокси-клиент, и вы сможете напрямую вызывать его методы. Вы можете увидеть, как использовать службу WCF, в приведенном ниже коде.

На этом пока все!

Увидимся в следующем рассказе, где я расскажу о цели 4.3: запрашивать данные и объекты и управлять ими с помощью LINQ.

PS: Если вы найдете эту историю полезной, я приглашаю вас нажать кнопку «Хлопок» и поделиться ею. Также буду рад видеть Вас в качестве моего нового последователя!