Доступ к данным с помощью элементов управления источником данных (DataSource) в ASP.NET 2.0 - Вставка информации при помощи элементов управления данными
ОГЛАВЛЕНИЕ
Вставка информации при помощи элементов управления данными
Элементы управления AccessDataSource, SqlDataSource и ObjectDataSource все поддерживают вставку, обновление и удаления. Вкратце, все три элемента обладают методом Insert, вызов которого выполняет следующую последовательность действий:
- Выполняется событие Inserting источника данных
- Происходит действие вставки
- Выполняется событие Inserted источника данных
Для различных элементов управления данными действие вставки различно. Для элементов AccessDataSource и SqlDataSource данное действие подразумевает соединение с указанной базой данных и выполнением выражения INSERT, указанного свойством InsertCommand. Для ObjectDataSource действие вставки подразумевает создание экземпляра объекта источника данных и вызова указанного InsertMethod. Данная статья фокусируется на элементе управления SqlDataSource.
Давайте детально исследуем действие вставки для элементов управления AccessDataSource и SqlDataSource. Выражение INSERT либо хранимая процедура, указанные командой InsertCommand элемента, используют параметризированный запрос. То есть, если вы используете произвольное SQL-выражение для InsertCommand, то выражение INSERT будет использовать параметры следующим образом:
INSERT INTO TableName (ColumnName1, ColumnName2, ..., ColumnNameN)
VALUES (@Parameter1, @Parameter2, ..., @ParameterN)
В статье о фильтрации базы данных при помощи параметров мы рассмотрели способ использования параметров в SelectCommand для фильтрации результатов, к примеру SELECT * FROM Products WHERE Price < @UnitPrice. Значение параметра @UnitPrice в данном экземпляре указывается посредством SelectParameters элемента управления источником данных, которое также может указать источник для значения параметра. Источником может быть: жёстко запрограммированное значение, например "3.95", которое позволит получить все товары, стоящие меньше чем $3.95; значение элемента управления на странице позволяет пользователю ввести значение цены в TextBox; значение из строки запроса; значение из состояния сессии и т.д.
Аналогично значения параметра в выражении INSERT назначаются основываясь на параметрах в наборе InsertParameters элемента управления источником данных и эти параметры могут использовать те же источники, что и the SelectParameters.
Элементы управления AccessDataSource и SqlDataSource "за кадром" используют стандартные классы ADO.NET для реализации доступа к данным. То есть они соединяются к базе данных при помощи объекта SqlConnection или OleDbConnection и указывают текст команды и параметры посредством объекта SqlCommand или OleDbCommand.
На данном этапе мы можем выразить процесс вставки для AccessDataSource и SqlDataSource более детальным способом:
- Выполняется событие Inserting источника данных
- Создаются объекты SqlConnection и SqlCommand (или OleDbConnection и OleDbCommand)
- Свойству CommandText командного объекта назначается свойство InsertCommand элемента управления источником данных
- К параметрам в наборе InsertParameters элемента управления источником данных добавляется набор Parameters командного объекта
- Устанавливается соединение с базой данных и выполняется команда, тем самым осуществляя вставку данных
- Выполняется событие Inserted источника данных
Остальная часть статьи рассматривает три случая вставки используя элемент управления SqlDataSource:
- вставка данных при помощи формы, созданной вручную
- вставка данных при помощи элемента управления DetailsView
- вставка и возврат значения колонки IDENTITY только что вставленной записи