Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
: $"{myDataReader.GetName(i)} = {myDataReader.GetValue(i)} "); } Console.WriteLine(); } Console.WriteLine();} while (myDataReader.NextResult());К этому моменту вы уже должны лучше понимать функциональность, предлагаемую объектами чтения данных. Не забывайте, что объект чтения данных способен обрабатывать только SQL-операторы
SelectInsertUpdateDeleteРабота с запросами создания обновления и удаления
Метод
ExecuteReader()ExecuteNonQuery()На заметку! Говоря формально, "отличающийся от запроса" означает оператор SQL, который не возвращает результирующий набор. Таким образом, операторы Select являются запросами, тогда как
InsertUpdateDeleteExecuteNonQuery()intВсе примеры взаимодействия с базами данных, рассмотренные в настоящей главе до сих пор, располагали только открытыми подключениями и применяли их для извлечения данных. Это лишь одна часть работы с базами данных; инфраструктура доступа к данным не приносила бы так много пользы, если бы полностью не поддерживала также функциональность создания, чтения, обновления и удаления (
createreadupdatedeleteExecuteNonQuery()Начните с создания нового проекта библиотеки классов C# по имени
AutoLot.DALAutoLotMicrosoft.Data.SqlClientПеред построением класса, который будет управлять операциями с данными, сначала понадобится создать класс С#, представляющий запись из таблицы
InventoryСоздание классов Car и CarViewModel
В современных библиотеках доступа к данным применяются классы (обычно называемые моделями или сущностями), которые используются для представления и транспортировки данных из базы данных. Кроме того, классы могут применяться для представления данных, которое объединяет две и большее количество таблиц, делая данные более значимыми. Сущностные классы используются при работе с каталогом базы данных (для операторов обновления), а классы модели представления применяются для отображения данных в осмысленной манере. В следующей главе вы увидите, что такие концепции являются основой инфраструктур объектно-реляционного отображения (object relational mapping — ORM) вроде Entity Framework Core, но пока вы просто собираетесь создать одну модель (для низкоуровневой строки хранилища) и одну модель представления (объединяющую строку хранилища и связанные данные в таблице
MakesModelsCar.csCarViewModel.cs// Car.csnamespace AutoLot.Dal.Models{ public class Car { public int Id { get; set; } public string Color { get; set; } public int MakeId { get; set; } public string PetName { get; set; } public byte[] TimeStamp {get;set;} }}// CarViewModel.csnamespace AutoLot.Dal.Models{ public class CarViewModel : Car { public string Make { get; set; } }}На заметку! Если вы не знакомы с типом данных
TimeStampbyte[]Новые классы будут применяться вскоре.
Добавление класса InventoryDal
Далее добавьте новую папку по имени
DataOperationsInventoryDal.cspublicInventoryAutoLotusing System; using System.Collections.Generic;using System.Data;using AutoLot.Dal.Models;using Microsoft.Data.SqlClient;Добавление конструкторов
Создайте конструктор, который принимает строковый параметр (
connectionStringПохожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.