МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ
БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ»
В.Г. Рудалев, А.В. Дылевский
РАЗРАБОТКА ВЕБ-ИНТЕРФЕЙСОВ
ДЛЯ ДОСТУПА К ДАННЫМ
Учебное пособие для вузов
Воронеж
Издательский дом ВГУ
2017
Стр.1
СОДЕРЖАНИЕ
ВВЕДЕНИЕ....................................................................................................................4
1. ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ......................................................................4
1.1. Постановка задачи............................................................................................................................................4
1.2. Серверная часть приложения........................................................................................................................5
1.3. Структура Веб приложения............................................................................................................................8
1.4. Отображение выборки данных на Web странице.....................................................................................11
1.5. Страница поиска данных..............................................................................................................................16
1.6. Страница редактирования данных.............................................................................................................19
1.7. Дополнительные элементы редактирования...........................................................................................22
2. ИСПОЛЬЗОВАНИЕ БИЗНЕС-СЛОЯ.....................................................................25
2.1. Создание бизнес-объектов.............................................................................................................................26
2.2. Страница просмотра данных. Класс ObjectDataSource.........................................................................30
2.3. Вызов метода редактирования данных......................................................................................................33
ЗАДАНИЯ.....................................................................................................................34
ЛИТЕРАТУРА...............................................................................................................34
3
Стр.3
Post varchar(10) NOT NULL,
CONSTRAINT PK_Teachers PRIMARY KEY (PrepID)
)
ALTER TABLE KursWork ADD CONSTRAINT FK_KursWork_Students
FOREIGN KEY(StudID)
REFERENCES Students (StudID)
ALTER TABLE KursWork CONSTRAINT FK_KursWork_Teachers
FOREIGN KEY(PrepID)
REFERENCES Teachers (PrepID)
Представления
Показ студентов, не записавшихся на курсовые работы:
CREATE VIEW StudFree
AS
SELECT
StudID, FIO, kurs
FROM dbo.Students AS s
WHERE (StudID NOT IN (SELECT StudID FROM dbo.KursWork WHERE
(StudID IS NOT NULL)))
Показ свободных тем (для которых в таблице KursWork столбец
StudID IS NULL):
CREATE VIEW ViewThemesFree
AS
SELECT WorkID, PrepID, WorkName, Kurs
FROM dbo.KursWork
WHERE (StudID IS NULL)
Показ преподавателей:
create view ViewTeachers
as
select PrepID, PrepFIO, Post from Teachers
GO
Показ всех тем с информацией о преподавателях и студентах:
CREATE VIEW ViewThemes
AS
SELECT dbo.Teachers.PrepFIO AS Teacher, dbo.Teachers.Post AS
Position, dbo.KursWork.WorkName AS Theme, dbo.KursWork.Kurs,
dbo.Students.FIO AS Student
FROM dbo.Teachers LEFT OUTER JOIN dbo.KursWork
6
Стр.6
ON dbo.Teachers.PrepID = dbo.KursWork.PrepID
LEFT OUTER JOIN dbo.Students
ON dbo.KursWork.StudID = dbo.Students.StudID
Данное представление показывает для всех преподавателей темы
курсовых работ вместе с записанными студентами. Так как используется
левое внешнее соединение, то показываются преподаватели, чьи темы не
разобраны.
Хранимые процедуры:
Процедура захвата темы:
CREATE PROCEDURE CaptureTheme
(
@ThemeID int,
@StudID int
)
-- Входные параметры — идентификаторы темы и студента
AS
-- Объявляем вспомогательные переменные
declare @kurs as int, @kurstheme as int
-- Находим курс студента и курс курсовой работы
select @Kurs = kurs from students where StudID=@StudID
select @kurstheme = kurs from kurswork
where workid = @ThemeID
-- Проверка, не был ли он уже записан на курсовую
–- работу на своем курсе
if NOT Exists
(select * from KursWork where (kurs = @kurs) and
(StudID = @StudID) ) and (@KursTheme = @Kurs)
update dbo.KursWork Set StudID = @StudID where
WorkID = @ThemeID
else
RaisError ('Ошибка. Разрешается брать только одну тему на своем
курсе!', 16, 1)
Задание. Хранимые процедуры для добавления, удаления и редактирования
преподавателей, студентов и заполнения первоначального списка
тем напишите самостоятельно.
7
Стр.7
1.3. Структура Веб приложения
В главном меню Visual Studio выберите File – New Web Site, как
показано на рис. 2.
В более свежих версиях представится возможность выбрать готовый
шаблон сайта, но рекомендуется все-таки выбрать «Пустой Веб-сайт
ASP.NET». Все его элементы можно будет создать вручную.
Рис.2
Сайт будет расположен в отдельной папке — назовите ее Sample.
Структура сайта отобразится в окне Solution Explorer (см. рис.3).
Рис.3
Главная страница Master Page
Главная страница является общей частью остальных страниц. Обычно
она содержит главное меню и другие общие для всех страниц элементы. Для
ее создания в контекстном меню сайта выберите Add New Item (рис.4).
8
Стр.8
Рис.4
Далее создайте папки, как на рис.5, выбирая в контекстном меню
сайта New Folder.
Рис.5
В каждой папке создайте страницы, Add New Item – Web Form, не
забыв внизу включить флажок Select master page (рис.6)
Рис.6
9
Стр.9
Страницу Default.aspx в корне сайта удалите (рис.7).
Рис.7
Главное меню
На мастер странице в режиме дизайнера поверх объекта
ContentPlaceHolder (но не на нем - в этом объекте будут динамически располагаться
вызванные страницы) разместите текст «Курсовые работы».
Ниже текста поместите элемент Menu (рис.8). В окне свойств выберите подходящий
шрифт и горизонтальную ориентацию меню.
Рис.8
Нажмите стрелочку справа от меню (Menu Tasks) и вызовите
редактор элементов меню, который настройте следующим образом, указав
страницы перехода по ссылкам NavigateUrl (рис.9).
Откройте страницу MainPage.aspx. В области ContentPlaceHolder1 наберите
текст «Здравствуйте! Только зарегистрированные пользователи имеют
право выбирать темы курсовых работ». Пометьте MainPage.aspx в
контекстном меню как Set as Start Page.
10
Стр.10