Для выполнения команды к БД нужно создать объект класса Command и задать значения его параметров. Для исполнения оператора SQL свойству CommandType нужно задать некоторое значение перечисления CommandType. Text, например: для исполнения хранимой процедуры свойству CommandType нужно задать значение CommandType. Stored Procedure. Свойству CommandText нужно задать строку SQL-оператора или имя хранимой процедуры, соответственно.
Для выполнения с помощью объекта Command команд, не возвращающих записи данных (операторы INSERT, UPDATE и DELETE, а также операторов DDL, таких, как CREATE TABLE и ALTER), нужно вызвать метод Command. ExecuteNonQuery (), например:
// одинаково, как для OleDbCommand, так и SqlCommand.
myCommand.ExecuteNonQuery ();
Для выполнения команды с помощью объекта Command, возвращающей одно значение необходимо вызвать метод Command. ExecuteScalar (), например:
// одинаково, как для OleDbCommand, так и SqlCommand.
Object о = myCommand. ExecuteNonScalar ();
Для выполнения команды, результатом работы которой является набор записей, используется метод ExecuteReader (), возвращающий объект DataReader. Данный объект обеспечивает быстрое и эффективное последовательное чтение данных от первой к последней записи. Объект DataReader позволяет перебирать записи полученной выборки, передавая нужные значения напрямую коду приложения. При этом объект DataReader намного эффективнее, но менее гибок в сравнении с DataSet. Данные, полученные через объект DataReader, доступны только для чтения, поэтому их нельзя модифицировать средствами DataReader. При этом данные разрешается просматривать только в одном направлении: нельзя вернуться к записи, прочитанной ранее. Кроме того, объект DataReader ориентирован на использование постоянных соединений и, пока он существует, требует монопольного доступа к активному соединению.