Отступление о запросах
Запросы, которые не возвращают записей (action query или КОМАНДНЫЕ ЗАПРОСЫ). Различаются:
запросы обновления или Data Manupulation Language queries. Предназначаются для изменения содержимого базы данных
UPDATE Customers
Set CompanyName = 'NewHappyName'
WHERE CustomerID = '007'-
-
INSERT INTO Customers (CustomerID, CompanyName)
VALUES ('007', 'NewHappyCustomer')
DELETE FROM Customers
WHERE CustomerID = '007' - запросы изменения или Data Definition Language queries. Предназначены для изменения структуры базы данных
CREATE TABLE myTable
(
Field1 int NOT NULL
Field2 varchar()
)
-
- Запросы, возвращающие значения из базы данных. Ниже представлены три примера запросов.
Возвращает значения полей для всех записей, представленных в таблице
Customers.SELECT
CustomerID,
CompanyName,
ContactName,
Phone
FROM
CustomersВозвращает значения полей для записей, представленных в таблице
Customers, у которых значение поляPhoneравно строке '333–2233'.SELECT
CustomerID,
CompanyName,
ContactName
FROM
Customers
WHERE
Phone = '222–3322'Параметризованный запрос. Множество возвращаемых значений зависит от значения параметра, стандартно обозначаемого маркером '
?' и замещаемого непосредственно при выполнении запроса:SELECT
CompanyName,
ContactName,
Phone
FROM
Customers
WHERE
CustomerID = ?
Command
Команда – объект, представляющий один из двух классов: либо класс OleDbCommand, либо класс SqlCommand. Основное назначение объекта "Команда" – выполнение различных действий над Базой Данных (ИСТОЧНИКЕ ДАННЫХ) при использовании ОТКРЫТОГО СОЕДИНЕНИЯ. Сами же действия обычно кодируются оператором SQL или хранимой процедурой. Закодированная информация фиксируется с использованием объектов – представителей класса Parameter, специально разработанных для "записи" кодируемой в команде информации.
То есть после установления соединения с БД для изменения состояния этой базы может быть создан, соответствующим образом настроен и применен объект – представитель класса Command.
Объект "Команда" – стартовый стол для запуска непосредственно из приложения команд управления БД, которыми и осуществляется непосредственное управление БД. Команда в приложении обеспечивает взаимодействие приложения с базой данных, позволяя при этом:
- сохранять параметры команд, которые используются для управления БД;
- выполнять специфические команды БД
INSERT, UPDATE, DELETE, которые не возвращают значений; - выполнять команды, возвращающие единственное значение;
- выполнять команды специального языка определения баз данных DataBase Definition Language (DDL), например
CREATE TABLE; - работать с объектом
DataAdapter, возвращающим объектDataSet; - работать с объектом
DataReader; - для класса
SqlCommand– работать с потоком XML; - создавать результирующие наборы, построенные на основе нескольких таблиц или в результате исполнения нескольких операторов.
Объект Command обеспечивает управление источником данных, которое заключается:
- в выполнении DML (Data Manipulation Language) запросов – запросов, не возвращающих данные (
INSERT, UPDATE, DELETE); - в выполнении DDL (Data Definition Language) запросов – запросов, которые изменяют структуру Базы Данных (
CREATE); - в выполнении запросов, возвращающих данные через объект
DataReader (SELECT).
Объект представлен двумя классами – SqlCommand и OleDb Command. Позволяет исполнять команды на БД и при этом использует установленное соединение. Исполняемые команды могут быть представлены:
- хранимыми процедурами;
- командами SQL;
- операторами, возвращающими целые таблицы.
Объектa – представитель класса Command поддерживает два варианта (варианты методов определяются базовым классом) методов:
ExecuteNonQuery– обеспечивает выполнение команд, не возвращающих данные, напримерINSERT, UPDATE, DELETE;ExecuteScalar– исполняет запросы к БД, возвращающие единственное значение;ExecuteReader– возвращает результирующий набор через объектDataReader.
Доступ к данным в ADO .NET с помощью Data Provider'а осуществляется следующим образом:
- Объект – представитель класса
Connectionустанавливает соединение между БД и приложением. - Это соединение становится доступным объектам
CommandиDataAdapter. - При этом объект
Commandпозволяет исполнять команды непосредственно над БД. - Если исполняемая команда возвращает несколько значений,
Commandоткрывает доступ к ним через объектDataReader. - Результаты выполнения команды обрабатываются либо напрямую, с использованием кода приложения, либо через объект
DataSet, который заполняется при помощи объектаDataAdapter. - Для обновления БД применяют также объекты
CommandиDataAdapter.
Итак, в любом случае, независимо от выбранного поставщика данных, при работе с данными в ADO .NET используем:
Connection Object– для установки соединения с базой данных;Dataset Object– для представления данных на стороне приложения;Command Object– для изменения состояния базы.
Способы создания объекта Command:
- с использованием конструкторов и с последующей настройкой объекта (указание строки запроса и объекта
Connection); - вызов метода
CreateCommandобъектаConnection.
Основы работы с Microsoft ADO.NET
Использование поставщика данных .NET
Метео


