Введение в программирование на C# 2.0

       

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.


Листинг 10: ,


Содержание раздела