Объекты чтения данных могут получать несколько результирующих наборов с применением одиночного объекта команды. Например, если вы хотите получить все строки из таблицы Inventory
Customers, тогда можете указать два SQL-оператора Select, разделив их точкой с запятой:sql += ";Select * from Customers;";
На заметку!
Точка с запятой в начале строки опечаткой не является. В случае использования множества операторов они должны разделяться точками с запятой. И поскольку начальный оператор не содержал точку с запятой, она добавлена здесь в начало второго оператора.После получения объекта чтения данных можно выполнить проход по каждому результирующему набору, используя метод NextResult
do
{
while (myDataReader.Read)
{
for (int i = 0; i < myDataReader.FieldCount; i++)
{
Console.Write(i != myDataReader.FieldCount - 1
? $"{myDataReader.GetName(i)} = {myDataReader.GetValue(i)}, "
: $"{myDataReader.GetName(i)} = {myDataReader.GetValue(i)} ");
}
Console.WriteLine;
}
Console.WriteLine;
} while (myDataReader.NextResult);
К этому моменту вы уже должны лучше понимать функциональность, предлагаемую объектами чтения данных. Не забывайте, что объект чтения данных способен обрабатывать только SQL-операторы Select
Insert, Update или Delete. Модификация существующей базы данных требует дальнейшего исследования объектов команд.Работа с запросами создания обновления и удаления
Метод ExecuteReader
ExecuteNonQuery объекта команды. В зависимости от формата текста команды указанный единственный метод выполняет вставки, обновления и удаления.На заметку!
Говоря формально, "отличающийся от запроса" означает оператор SQL, который не возвращает результирующий набор. Таким образом, операторы Select являются запросами, тогда какInsert, Update и Delete — нет. С учетом сказанного метод ExecuteNonQuery возвращает значение int, которое представляет количество строк, затронутых операторами, а не новый набор записей.Все примеры взаимодействия с базами данных, рассмотренные в настоящей главе до сих пор, располагали только открытыми подключениями и применяли их для извлечения данных. Это лишь одна часть работы с базами данных; инфраструктура доступа к данным не приносила бы так много пользы, если бы полностью не поддерживала также функциональность создания, чтения, обновления и удаления (create
read, update, delete — CRUD). Далее вы научитесь пользоваться такой функциональностью, применяя вызовы ExecuteNonQuery.Начните с создания нового проекта библиотеки классов C# по имени AutoLot.DAL
AutoLot), удалите стандартный файл класса и добавьте в проект пакет Microsoft.Data.SqlClient.Перед построением класса, который будет управлять операциями с данными, сначала понадобится создать класс С#, представляющий запись из таблицы Inventory
Создание классов Car и CarViewModel
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT