• Microsoft .NET
  • ASP.NET
  • Удаленная отладка IIS: Отлаживайте ваше приложение ASP.NET, размещенное на удаленном сервере IIS

Доступ к данным с помощью элементов управления источником данных (DataSource) в ASP.NET 2.0 - Вставка информации при помощи элементов управления данными

ОГЛАВЛЕНИЕ

Вставка информации при помощи элементов управления данными

Элементы управления AccessDataSource, SqlDataSource и ObjectDataSource все поддерживают вставку, обновление и удаления. Вкратце, все три элемента обладают методом Insert, вызов которого выполняет следующую последовательность действий:

  1. Выполняется событие Inserting источника данных
  2. Происходит действие вставки
  3. Выполняется событие 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 более детальным способом:

  1. Выполняется событие Inserting источника данных
  2. Создаются объекты SqlConnection и SqlCommand (или OleDbConnection и OleDbCommand)
  3. Свойству CommandText командного объекта назначается свойство InsertCommand элемента управления источником данных
  4. К параметрам в наборе InsertParameters элемента управления источником данных добавляется набор Parameters командного объекта
  5. Устанавливается соединение с базой данных и выполняется команда, тем самым осуществляя вставку данных
  6. Выполняется событие Inserted источника данных

Остальная часть статьи рассматривает три случая вставки используя элемент управления SqlDataSource:

  • вставка данных при помощи формы, созданной вручную
  • вставка данных при помощи элемента управления DetailsView
  • вставка и возврат значения колонки IDENTITY только что вставленной записи
Полный код примеров вы можете скачать в конце данной статьи.