Обработка баз данных на Visual Basic®.NET
Шрифт:
При определении параметра, который будет использоваться для возвращаемого значения ReturnValue хранимой процедуры его нужно указать первым в списке параметров коллекции Parameters. Это обязательное
Далее представлены другие фрагменты кода с указанием параметров команд и хранимых процедур, а также описываются способы их выполнения.
Выполнение команд
До сих пор мы только указывали свойства и параметры объекта Command, но не выполняли эти команды. Существует три стандартных способа выполнения команд для объекта Command и один способ для объекта SqlCommand.
• Метод ExecuteNonQuery. Выполняет команду SQL и не возвращает записей.
• Метод ExecuteScalar. Выполняет команду SQL и возвращает первое поле первой записи.
• Метод ExecuteReader. Выполняет команду SQL и возвращает набор записей с помощью объекта DataReader.
• Метод ExecuteXmlReader (только для объекта-команды SqlCommand). Выполняет команду SQL и возвращает набор записей в формате XML с помощью объекта XmlReader.
Первые три метода рассматриваются далее в этой главе, а последний – в главе 10, "ADO.NET и XML", при обсуждении способов использования XML в модели ADO.NET.
Метод ExecuteNonQuery
Этот метод позволяет выполнять команды без возвращения значений (наборов записей или скалярных значений), кроме значения, сообщающего об успешном или неудачном исходе выполнения команды. Это наиболее эффективный способ выполнения команд по отношению к источнику данных. Таким образом можно выполнять команды SQL или хранимые процедуры, которые являются DDL-командами определения данных (например, для создания или изменения структуры базы данных: таблиц, представлений или хранимых процедур) либо DML-командами управления данными (например, их обновления, вставки или удаления).
Метод ExecuteNonQuery возвращает только целочисленное значение, сообщающее об успешном или неудачном исходе выполнения команды.
При удачном выполнении DDL-команд определения данных для изменения структуры баз данных возвращается значение -1, а при удачном выполнении DML управления данными для их обновления, вставки или удаления возвращается количество строк, задействованных в команде. При неудачном выполнении команд обоих типов возвращается значение 0.
Продолжая работу с проектом DataProviderObjects, попробуем использовать объекты пространства имен OleDb и базу данных pubs. Наша задача – создать новую таблицу tblStateZipCodes
Теперь нужно изменить исходную форму Form1, выполнив ряд действий.
1. Откройте форму Form1 в интегрированной среде разработки Visual Studio .NET.
2. В верхнем левом углу формы создайте еще одну кнопку, перетаскивая ее пиктограмму из панели элементов управления.
3. В окне свойств Properties укажите значение btnNonQuery для свойства (Name) и значение ExecuteNonQuery для свойства Text.
Затем создайте код подпрограммы btnNonQuery_Click, который приведен в листинге 4.4.