Пошаговое руководство. Отображение данных с помощью хранимой процедуры в серверном веб-элементе управления GridView

Visual Studio 2010

Обновлен: Ноябрь 2007

В данном пошаговом руководстве описан процесс отображения данных в элементе управления GridView путем использования хранимой процедуры. Хранимые процедуры представляют собой запрос SQL, который хранится в базе данных Microsoft SQL Server, а не в коде приложения. Данный вид процедур более безопасен, чем код запроса и, часто, быстрее. В этом пошаговом руководстве будет создан элемент управления SqlDataSource, который извлекает результаты хранимой процедуры. Элемент управления SqlDataSource выступает в качестве источника данных для элемента управления GridView. Элемент управления GridView считывает результаты, сгенерированные хранимой процедурой, и создает строки и таблицы, необходимые для отображения данных.

В процессе выполнения этого пошагового руководства вы научитесь:

  • Создавать подключение к базе данных SQL Server в Visual Web Developer.

  • Использовать элемент управления SqlDataSource для управления доступом к данным и связыванием.

  • Добавлять хранимую процедуру для возвращения данных и их отображения в элементе управления GridView.

  • Отображать данные, возвращенные хранимой процедурой, в элементе управления GridView.

Для выполнения этого пошагового руководства потребуется следующее.

  • Visual Studio 2008 или Visual Web Developer 2008, экспресс-выпуск.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    Функция Добавить новую хранимую процедуру, используемая в данном пошаговом руководстве, не поддерживается в Visual Web Developer 2005, экспресс-выпуск.

  • SQL Server, экспресс-выпуск. Если установлен SQL Server, можно использовать его, однако необходимо внести незначительные изменения в некоторые процедуры.

  • Компоненты доступа к данным Microsoft (MDAC) 2.7 или более поздней версии.

    Если используется Microsoft Windows XP или Windows Server 2003, то компоненты MDAC версии 2.7 уже установлены. Однако если используется Microsoft Windows 2000, то может потребоваться обновление компонентов доступа к данным MDAC, уже установленных на компьютере. Дополнительные сведения см. в разделе Microsoft Data Access Components (MDAC) Installation на веб-узле MSDN.

  • Доступ к учебной базе данных Northwind ("Northwind") на SQL Server. Сведения о загрузке и установке учебной базы данных SQL Server Northwind см. в разделе Установка образцов баз данных на веб-узле Microsoft SQL Server.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    Сведения о входе в систему SQL Server можно получить у администратора сервера.

Создайте новый веб-узел и страницу, выполнив следующие действия.

Создание файлового веб-узла

  1. Откройте Visual Web Developer.

  2. В меню Файл выберите команду Создать и затем выберите Веб-узел. При использовании Visual Web Developer, экспресс-выпуск в меню Файл выберите команду Создать веб-узел.

    Откроется диалоговое окно Создать веб-узел.

  3. В группе Установленные шаблоны Visual Studio выберите Веб-узел ASP.NET.

  4. В поле Расположение выберите поле Файловая система и введите имя папки, в которой будут храниться страницы веб-узла.

    Например, введите имя папки C:\WebSites\StoredProcedure.

  5. В списке Язык выберите предпочтительный язык программирования.

  6. Нажмите кнопку ОК.

    Visual Web Developer, экспресс-выпуск создаст папку и новую страницу с именем Default.aspx.

Для отображения данных на веб-странице ASP.NET требуется следующее:

  • Подключение к источнику данных, например к базе данных.

    В рамках представленной далее процедуры будет создано соединение с базой данных SQL Server Northwind.

  • Хранимая процедура, возвращающая данные для отображения.

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

  • Элемент управления на странице для отображения данных.

В следующей процедуре данные будут отображены в элементе управления GridView. Элемент управления GridView возвращает данные из элемента управления SqlDataSource.

Для начала следует создать хранимую процедуру.

Создание хранимой процедуры для возвращения данных

  1. В Обозревателе серверов щелкните правой кнопкой мыши Подключения данных и затем выберите Добавить подключение. Если используется Visual Web Developer, экспресс-выпуск, выполните аналогичные действия в Обозревателе баз данных.

    Откроется диалоговое окно Добавить подключение.

    • Если в списке Источник данных отсутствует элемент Microsoft SQL Server (SqlClient), нажмите кнопку Изменить и в диалоговом окне Изменить источник данных выберите Microsoft SQL Server.

    • Если вместо диалогового окна Свойства подключения открылось диалоговое окно Выбор источника данных, то в списке Источник данных выберите тип источника данных, который будет использоваться. В данном руководстве в качестве типа источника данных используется Microsoft SQL Server. В списке Поставщик данных выберите Поставщик данных .NET Framework для SQL Server и нажмите кнопку Продолжить.

      k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

      Если вкладка Обозреватель серверов не видна в Visual Web Developer, в меню Вид выберите Обозреватель серверов. В Visual Web Developer, экспресс-выпуск в меню Вид выберите Обозреватель баз данных.

  2. В диалоговом окне Добавить подключение введите имя сервера в текстовом поле Имя сервера.

  3. В разделе Вход на сервер выберите переключатель, соответствующий типу доступа к запущенной базе данных SQL Server (встроенная безопасность или определенный идентификатор и пароль) и при необходимости введите имя пользователя и пароль.

  4. При вводе пароля установите флажок Сохранить пароль.

  5. В поле Выберите или введите имя базы данных введите Northwind.

  6. Нажмите кнопку Проверить подключение и, убедившись в его наличии, нажмите кнопку ОК.

    Новое подключение будет создано и появится в разделе Подключения данныхОбозревателя серверов.

  7. В Обозревателе серверов в разделе Подключения данных разверните только что созданное подключение. Если используется Visual Web Developer, экспресс-выпуск, выполните аналогичные действия в Обозревателе баз данных.

    Выполняется развертывание подключения данных и добавляются подключения дочерних элементов, включая Таблицы, Представления и Хранимые процедуры.

  8. Щелкните правой кнопкой мыши элемент Хранимые процедуры, а затем выберите команду Добавить новую хранимую процедуру.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    В Visual Web Developer 2005, экспресс-выпуск функция Добавить новую хранимую процедуру не поддерживается.

  9. Добавьте к новой хранимой процедуре следующий код, перезаписав использующийся код.

    CREATE PROCEDURE GetEmployees
    AS
        Select EmployeeID, LastName, FirstName from Employees
    RETURN 
    
  10. Закройте окно и нажмите кнопку Да, чтобы создать хранимую процедуру.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    После сохранения процедуры значение ключевого слова CREATE изменяется на ALTER.

После установления соединения с источником данных потребуются:

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

  • Элемент управления на странице для отображения данных.

В следующей процедуре данные будут отображены в элементе управления GridView. Элемент управления GridView получает данные от элемента управления SqlDataSource.

Эти элементы можно по отдельности добавить к веб-узлу. Однако проще начать с визуализации отображения данных с помощью элемента управления GridView, а затем создать подключение и элемент управления источником данных с помощью мастеров. В следующей процедуре поясняется, как создать элементы, необходимые для отображения данных на странице.

Добавление и настройка элемента управления GridView для отображения данных

  1. Откройте страницу Default.aspx или перейдите к ней, а затем перейдите в представление Конструктор.

  2. Из группы Данные в панели элементов перетащите на страницу элемент управления GridView.

  3. В списке Выбор источника данных в меню Задачи GridView выберите Новый источник данных.

    Отобразится диалоговое окно Мастер настройки источника данных.

  4. Выберите База данных и нажмите кнопку ОК.

    Это указывает, что данные будут извлекаться из базы данных SQL Server.

    В поле Укажите идентификатор источника данных отображается имя источника данных по умолчанию (SqlDataSource1). Оставьте данное имя.

    Мастер Настроить источник данных SqlDataSource1 отобразит страницу, на которой можно выбрать нужное соединение.

  5. В поле Какое подключение ваше приложение должно использовать для работы с базой данных? укажите соединение, созданное в рамках предыдущей процедуры, и нажмите кнопку Далее.

    Мастер отобразит страницу, на которой можно сохранить строку подключения в файле конфигурации. Сохранение строки подключения в файле конфигурации имеет два преимущества:

    • Это более безопасно, чем сохранение ее на странице.

    • Можно использовать одну строку подключения на нескольких страницах.

  6. Установите флажок Да, сохранить подключение как и нажмите кнопку Далее.

    Мастер отобразит страницу, где можно указать, какие данные требуется извлечь из базы данных.

  7. Выберите Указать пользовательские инструкции SQL или хранимую процедуру и нажмите Далее.

  8. На странице Определите специальные операторы или хранимые процедуры выберите Хранимая процедура, а затем выберите созданную ранее процедуру (GetEmployees).

  9. Нажмите кнопку Далее.

  10. Нажмите кнопку Пробный запрос, чтобы проверить, извлекаются ли нужные данные.

  11. Нажмите кнопку Готово.

Можно отображать данные, возвращаемые принимающей параметры хранимой процедурой. В рамках следующей процедуры будет создан элемент управления DetailsView для отображения вычисленного значения для выбранной строки в элементе управления GridView. Строка элемента управления GridView будет представлять запись в таблице Employee, а элемент управления DetailsView будет отображать общий объем продаж, вычисленный для выбранного сотрудника.

Понадобятся следующие компоненты:

  • Хранимая процедура, которая принимает идентификатор сотрудника в качестве параметра и возвращает значение.

  • Второй элемент управления источником данных на странице, выполняющий хранимую процедуру и управляющий полученными результатами. Оба элемента управления источниками данных будут представлять подключения к одной и той же базе данных Northwind. Будет снова использоваться подключение к базе данных SQL Server Northwind, созданное ранее в данном пошаговом руководстве.

  • Элемент управления DetailsView на странице для отображения данных.

Для начала следует создать хранимую процедуру.

Создание хранимой процедуры для возвращения данных, которые будут отображаться в элементе управления DetailsView

  1. В Обозревателе серверов в разделе Подключения данных разверните ранее созданное подключение. Если используется Visual Web Developer, экспресс-выпуск, выполните аналогичное действие в Обозревателе баз данных.

  2. Щелкните правой кнопкой мыши элемент Хранимые процедуры, а затем выберите команду Добавить новую хранимую процедуру.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    В Visual Web Developer 2005, экспресс-выпуск функция Добавить новую хранимую процедуру не поддерживается.

  3. Добавьте к новой хранимой процедуре следующий код, перезаписав использующийся код.

    CREATE PROCEDURE EmployeeSales
    @Employee int AS
    SELECT   SUM([Order Subtotals].Subtotal) AS Total
    FROM Employees INNER JOIN
        Orders INNER JOIN
        [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID
    ON Employees.EmployeeID = Orders.EmployeeID
    WHERE (Employees.EmployeeID = @Employee)
    
  4. Закройте окно и нажмите кнопку Да, чтобы создать хранимую процедуру.

    k10148y1.alert_note(ru-ru,VS.100).gifПримечание.

    После сохранения процедуры значение ключевого слова CREATE изменяется на ALTER.

После создания хранимой процедуры, которая будет поставлять данные, необходимо создать следующие компоненты.

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

  • Элемент управления на странице для отображения данных.

В следующей процедуре данные будут отображены в элементе управления DetailsView. Элемент управления DetailsView возвращает данные из элемента управления SqlDataSource.

Эти элементы можно по отдельности добавить к веб-узлу. Однако проще начать с визуализации отображения данных с помощью элемента управления DetailsView, а затем создать подключение и элемент управления источником данных с помощью мастеров. В следующей процедуре поясняется, как создать элементы, необходимые для отображения данных на странице.

Следующий шаг — включить выбор строк для элемента управления GridView. Выбранная строка будет определять параметр EmployeeID, передаваемый хранимой процедуре.

Включение выбора строк для элемента управления GridView

  1. Щелкните правой кнопкой мыши элемент управления GridView и выберите команду Показать смарт-тег.

  2. В области Задачи GridView установите флажок Включить выбор.

Следующий шаг — создать элемент управления для отображения результатов хранимой процедуры.

Добавление и настройка элемента управления DetailsView для отображения данных

  1. Откройте страницу Default.aspx или перейдите к ней, а затем перейдите в представление Конструктор.

  2. Из группы Данные в панели элементов перетащите на страницу элемент управления DetailsView.

  3. В списке Выбор источника данных в меню Задачи DetailsView выберите Новый источник данных.

    Отобразится диалоговое окно Мастер настройки источника данных.

  4. Выберите База данных и нажмите кнопку ОК.

    Это указывает, что данные будут извлекаться из базы данных SQL Server.

    В поле Укажите идентификатор для источника данных отображается имя элемента управления источником данных по умолчанию (SqlDataSource2). Оставьте данное имя.

    Мастер Настроить источник данных SqlDataSource2 отобразит страницу, на которой можно выбрать нужное соединение.

  5. В поле Какое подключение ваше приложение должно использовать для работы с базой данных? укажите ранее соединение и нажмите кнопку Далее.

  6. Выберите Указать пользовательские инструкции SQL или хранимую процедуру и нажмите Далее.

  7. На странице Определите специальные операторы или хранимые процедуры выберите Хранимая процедура, а затем выберите созданную ранее процедуру (EmployeeSales).

  8. Нажмите кнопку Далее.

    Отобразится страница Задайте параметры.

  9. В списке Источник параметров выберите Элемент управления.

  10. В списке ControlID выберите GridView1.

  11. Нажмите кнопку Пробный запрос, чтобы проверить, извлекаются ли нужные данные. В диалоговом окне Редактор значений параметров введите значение 1 и нажмите кнопку ОК. Значение 1 — это идентификатор сотрудника в базе данных. Если извлечение данных работает правильно, будет возвращено значение, такое как 192 107,6000. (Значение может отличаться от приведенного, если данные в базе данных были изменены.)

  12. Нажмите кнопку Готово.

Теперь можно проверить работу страницы.

Тестирование страницы

  1. Нажмите сочетание клавиш CTRL+F5, чтобы запустить страницу.

    Страница откроется в веб-обозревателе. Элемент управления GridView отображает строки данных, полученных из таблицы Employees.

  2. Щелкните ссылку Выбрать на строке данных в элементе управления GridView.

    В элементе управления DetailsView будут отображены сведения выбранной строки и результаты вычисления хранимой процедурой общего объема продаж для выбранного сотрудника.

  3. Закройте обозреватель.

В данном пошаговом руководстве описано использование хранимых процедур SQL Server с элементом управления источника данных для отображения данных на веб-странице ASP.NET. Хранимые процедуры можно использовать почти так же, как и инструкции SQL при работе с элементом управления SqlDataSource. Кроме того, хранимые процедуры способны принимать параметры, которые можно связывать со значениями на веб-странице. Ниже перечислены некоторые другие сценарии с использованием хранимых процедур, предусматривающие выполнение связанных с данными функции с помощью инструкций SQL.

Показ: