Смекни!
smekni.com

Создание сайта на языке ASP.NET (стр. 2 из 3)

Рис. 2. Выбор источника данных

Как видно на (рис. 2), сперва, выбирается источник данных. Этот источник создается автоматически.

Рис. 3. Указание пути к базе данных


На (рис. 3) выбирается строка присоединения к базе данных.

Рис. 4. Выбор столбца

На (рис. 4) выбирается столбец, который будет отображен в конкретном элементе управления. При компиляции страницы, в выбранном элементе управления, будет находится содержания выбранного столбца. Такой метод значительно упрощает разработку приложений.


2. Конструкторская часть

2.1 Структура базы данных

База данных состоит из трех таблиц. Таблица sTudenT служит для хранения фамилии, имени и отчества студента. Имеет следующую структуру:

id SecondName FirstName oT4ecTBo

Соответственно в столбец SecondName добавляется фамилия студента, в столбец FirstName добавляется имя студента, в столбец oT4ecTBo добавляется отчество студента. Столбец id задан как Primary Key, сведовательно значения этого столбца формируются автоматически.

Таблица subjects состоит из двух столбцов id и Name. Соответственно id формируется автоматически, а в столбец Name заносятся названия предметов.

id Name

Таблица markbook имеет более сложную структуру, она состоит из 4 столбцов.

id idst idsubj mark

Столбец id формируется автоматически. Столбец idst служит для занесения туда идентификационного номера студента, который берется из таблицы sTudenT. Столбец idsubj служит для занесения в него идентификационного номера предмета, который берется из таблицы subjects. Столбец mark служит для занесения оценки по определенному предмету. Все столбцы имеют формат int.


2.2 Принцип работы первой страницы сайта

Первая страница является своего рода навигатором по сайту. Она состоит из трех объектов типа HyperLink (ссылка), которые размещены на элементе управления Panel. Цель каждой ссылки – это перенаправление на другую страницу. Для того, чтобы при нажатии на ссылку она перенаправляла на нужную страницу необходимо задать в окне Properties свойство NavigateUrl.

2.3 Принцип работы второй страницы сайта

Вторая страница служит для заполнения таблицы markbook. В окне Design распложены два элемента DropDownList, один TextBox и кнопка Button. Элементы DropDownList берут информацию из таблиц sTudenT и subjects посредством интерфейса автоматического вывода столбца. Первый DropDownList отображает фамилии студентов, второй названия предметов.

При загрузке страницы происходит соединение с базой данных посредством метода Open(). При нажатии на кнопку происходит проверка правильности заполнения данных, то есть оценка должна находиться в интервале от 1 до 5, оценку нельзя ставить по одному и тому же предмету два раза. Затем, если данные введены правильно, создаются две строки запроса, первая выбирает id студента из таблицы sTudenT, вторая id предмета из таблицы subjects. Далее осуществляется сам запрос и при помощи метода ExecuteScalar() значения id присваиваются соответствующим переменным. Далее выполняется запрос на добавления данных, введенных на странице, в таблицу markbook, при помощи метода ExecuteNonQuery().


2.4 Принцип работы третьей страницы сайта

Третья страница служит для создания новых студентов и новых предметов. В окне Design расположены четыре элемента TextBox и два Button. Первая кнопка служит для занесения нового студента в базу данных, вторая для занесения нового предмета. При загрузке страницы происходит соединение с базой данных посредством метода Open(). При нажатии на одну из кнопок происходит проверка введенных данных, то есть поля нельзя оставлять пустыми. Далее создается запрос на добавление данных.

string.Format("INSERT INTO [subjects] ([Name]) VALUES ('{0}')", subj);

А затем при помощи метода ExecuteNonQuery(), данные заносятся в соответствующую таблицу. При успешном добавлении выдается соответствующее сообщение.

2.5 Принцип работы четвертой страницы сайта

Данная страница служит для просмотра успеваемости студента. В окне Design расположены элементы: DropDownList, Button и Table. Элемент DropDownList использует интерфейса автоматического вывода столбца и выводит список фамилий студентов, которые он берет из таблицы sTudenT. При загрузке страницы происходит соединение с базой данных посредством метода Open(). Далее выбирается id студента и id предметов из таблиц sTudenT и subjects. Причем для любого студента соответствует несколько id предметов, соответственно, для того чтобы их вывести создается объект SqlDataReader который считывает данные построчно при помощи метода Read(). Для подсчета количества строк используется цикл, в котором значение переменной при прочитывании строки увеличивается на 1. Это нужно для того, чтобы в дальнейшем знать длину массива, в котором будут храниться id строк таблицы markbook. При завершении цикла соединение закрывается. Далее соединение снова открывается, и цикл повторяется, в котором в массив id заносятся id строк, для которых прошла выборка, то есть каждому студенту соответствует несколько строк из таблицы markbook. В этом же цикле создаются запросы на выборку id предметов и оценок по этим предметам для строк, прошедших выборку. Затем соединение опять закрывается, следовательно, его нужно заново открыть. Далее запускается цикл, цель которого заменить id предметов на реальные названия предметов и сохранить их в массив. После всех выполненных операций необходимо заполнить таблицу. Таблица имеет формат:

Предмет Оценка

Заполнение таблицы происходит следующим образом: создается объект типа TableRow (строка), в ней создаются ячейки TableCell. В которые можно записывать данные через свойство Cell.Text. Все операции делаются в цикле, так как количество строк одна или больше.

2.6 Принцип работы пятой страницы сайта

Пятая страница служит для удаления студента из базы данных. На этой странице расположено два элемента: DropDownList, в котором происходит выбор фамилия студента, и Button, при нажатии на который происходит само удаление данных. При удалении, данные удаляются из двух таблиц: sTudenT и markbook. Для удаления данных используется запрос с ключевым словом «DELETE». Из таблицы sTudenT данные удаляются легко, а для удаления данных из таблицы markbook выполняются следующие операции: из таблицы sTudenT выбирается id студента, затем делается запрос на отбор строк в таблице markbook, соответствующих этому id (по столбцу idst), после этого выбираются id строк из таблицы markbook и только потом производится запрос на удаление. Причем количество строк может быть больше чем одна, следовательно для формирования списка конкретных строк применяется метод ExecuteReader(). Данные удаляются при помощи метода ExecuteNonQuery(). После выполнения всех операций выводится сообщение об удачном удаления студента из таблицы.

2.7 Принцип работы шестой страницы сайта

Седьмая страницы служит для поиска студента по базе данных. В окне Design находятся три элемента: TextBox, Button, Table. В элемент TextBox вводится фамилия студента для поиска. Элемент Table используется для вывода данных при успешном нахождении студента. Процедура поиска заключается в нахождении id студента по введенным данным в поле TextBox. Соответственно делается следующий запрос:

string.Format("SELECT id FROM [sTudenT] WHERE SecondName = '{0}'", SecondName);

Если id студента был найден, соответственно по величине он будет больше нуля, если нет, то он будет равен -1. Далее, если студент был найден, то по найденному id осуществляются запросы на выборку имени и отчества из той же таблицы sTudenT. Затем выдается сообщение об успешном нахождении студента. Для вывода данных в таблицу используется последовательность действий аналогичная пункту 2.5.

2.8 Принцип работы седьмой страницы сайта

Седьмая страница сайта используется для изменения фамилии имени и отчества студента. Все операции выполняются с таблицей sTudenT. Для изменения данных используется запрос с ключевым словом «UPDATE». В окне Design приложения расположены три элемента типа TextBox, один DropDownList и один элемент типа Button. В элементе DropDownList располагаются фамилии всех студентов из столбца SecondName. Три элемента типа TextBox служат для введения новых данных. При нажатии на кнопку происходит проверка введенных данных, то есть нельзя вводить студента с фамилией, которая уже используется в базе, нельзя вводить пустые поля. Для изменения данных используется запрос вида:

string.Format("UPDATE [sTudenT] SET SecondName = '{0}', FirstName = '{1}', oT4ecTBo = '{2}' WHERE id = '{3}'", new_sec_name, new_fir_name, new_oT4ecTBo, id);

Как видно одним из параметров является id студента. Данный параметр находится путем запроса:

string.Format("SELECT id FROM [sTudenT] WHERE SecondName = '{0}'", DropDownList1.Text);

При успешном изменении данных выводится соответствующее сообщение.

2.9 Принцип работы восьмой страницы сайта

Данная страница используется для изменения оценок студента в таблице markbook. Для того чтобы изменить оценку необходимо получить id предмета и id студента. Эти id берутся из таблиц sTudenT и subject. Соответственно делаются два запроса. Параметром для первого запроса, который выбирает id студента, является текущее значение элемента DropDownList1, а для второго текущее значение элемента DropDownList2. Затем при помощи ключевого слова «UPDATE» изменяется таблица. Запрос на изменение выглядит следующим образом:

string.Format("UPDATE [markbook] SET mark = '{0}' WHERE idst = '{1}' AND idsubj = '{2}'", TextBox1.Text, idst, idsubj);

При успешном изменении данных, выводится соответствующее сообщение.


2.10 Принцип работы девятой страницы сайта

Данная страница служит для удаления предметов из базы данных. В окне Design расположены только два элемента: DropDownList и Button. Соответственно в элемент DropDownList заносятся данные из таблицы subjects, а именно столбец Name. Принцип работы данной страницы заключается в следующем: сначала по значению предмета, выбранного в элементе DropDownList, выполняется запрос на получение id предмета из таблицы subjects, затем по полученному id выбираются все подходящие записи в таблице markbook. Выборка данных производится при помощи метода Read() принадлежащего классу SqlDataReader. Полученные данные заносятся в массив. Затем выполняется сам запрос на удаление подходящих строк их таблицы markbook. После выполнения всех выше описанных операций выполняется операция на удаление строки из таблицы subjects.