на начало
На главную страницу
Форум   

Статья :: Выполнение операторов SQL


Выполнение операторов SQL

Метод ExecuteReader класса SqlCommand возвращает экземпляр класса Da-taReader. Данные возвращаются, если в качестве команды задан запрос на выборку. Этот же метод можно использовать для обновления, вставки или удаления данных. Метод SQLCommand: : ExecuteReader использует хранимую процедуру sp_executesql. Некоторые команды, использующие операторы SET (оператор Установить), могут работать неправильно. Другие драйверы могут иметь иные ограничения на использование метода ExecuteReader.
Обычно для команд, при выполнении которых данные не возвращаются, используется метод SqlCommand::ExecuteNonQuery. Пример NonQuery демонстрирует работу этого метода. Кроме того, соединение с SQL Server осуществляется в нем с помощью источника данных OleDb (OLE для баз данных).

String *cmd = "update Customers set ContactName =
// Строка *cmd = "обновить Клиентов, установить ContactName =
Too' where ContactName = 'Maria Anders'";
// Too', где ContactName = 'Мария Андерс";
try {
conn = new OleDbConnection(ConnString);
conn->0pen(); // Открыть
command = new OleDbCommand(cmd, conn);
int NumberRows = command->ExecuteNonQuery(); // команда
Console::WriteLine(
"Number Rows: {0}", NumberRows.ToString());
}

Количество измененных строк, которое должно быть равным 1, показано в окне, предназначенном для консольного вывода. Если запустить программу еще раз, она не сможет найти необходимую ей запись, так как та была изменена при первом запуске программы (нет больше в базе данных Марии Андерс (Maria Anders)!), и выведет значение 0. Для приведения базы данных в исходное состояние необходимо запустить макрос SQL, как это описано в файле readme.txt для этой главы. На рис. 9.4 показан результат изменения первой строки. Значение поля ContactName изменено с Maria Anders на Foo.
При выполнении вставки, обновления и удаления данных возвращается количество строк, которых коснулись изменения. Для всех остальных операторов SQL Server возвращает значение -1 (при использовании родного источника данных или OLEDB (OLE для баз данных)). Другие драйверы доступа могут возвращать 0 или -1.
Для получения одного значения (например, результата вычислений) используйте метод ExecuteScalar. При работе с источниками данных, способными генерировать данные XML, более эффективным будет использовать метод SqlCommand: : ExecuteXmlReader, a не получать данные в объект DataSet (Набор данных), а затем преобразовывать их в ХМL.

4.gif

Рис. 9.4. Таблица Customers (Клиенты) после внесения в нее изменений Сравните первую строку таблицы с ее первоначальным видом на рис. 9.3.


Выполнение операторов SQL

страницы в данном разделе 
Глава 9. Программирование в ADO.NET Программирование в ADO.NET
Источники данных Проводник Visual Studio.NET по серверу: Server Explorer
Установление соединения Устройства считывания данных
Работа с базой данных в соединенном режиме Выполнение операторов SQL
DataReader Множественное результирующее множество
Коллекция параметров Классы SqlDataAdapter и DataSet (Набор данных)
Отсоединенный режим Коллекции объектов DataSet (Набор данных)
Основные сведения о наборах данных Обновление источника данных
Автоматически генерируемые свойства команд Транзакции и обновление базы данных
Объект DataSet (Набор данных) и сравнение пессимистического блокирования с оптимистическим Использование наборов данных
Множественные таблицы в объекте DataSet (Набор данных) Создание таблицы без обращения к источнику данных
Ограничения и связи Получение информации о схеме размещения данных в объекте DataTabie (Таблица данных)
Изменение объекта DataRow Пример приложения Acme Travel Agency (Туристическое агентство Acme)
Доступ к данным XML Схема и данные XML
XmlDataDocument DataSet (Набор данных) и XML
База данных AirlineBrokers DataSet (Набор данных) и XML
Создание документа XML из объекта DataSet (Набор данных) Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста